#python #holoviews #holoviz #pyviz #panel-pyviz
#python #holoviews #holoviz #pyviz #панель-pyviz
Вопрос:
Я хотел бы знать, каков наилучший способ создания элементов, которые являются частью одного и того же макета голокарты, но на отдельных панелях pane
границы их осей вычисляются так же, как и при рендеринге всего макета.
Это проще в следующем примере.
Допустим, я определяю a HoloMap
, который я визуализирую как a NdLayout
из гистограмм:
df = pd.DataFrame(
{
'level_1': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
'level_2': ['C', 'D', 'C', 'D', 'C', 'D', 'C', 'D'],
'group' : ['group1', 'group1', 'group2', 'group2', 'group1', 'group1', 'group2', 'group2'],
'values': [3, 1, 9, 11, 5, 6, 1, 3],
}
)
hv_ds = hv.Dataset(
df,
kdims=['level_1', 'level_2', 'group'],
vdims='values',
)
layout = hv_ds.to(
hv.Bars,
kdims=['level_1', 'level_2'],
vdims='values',
).layout('group')
layout
Этот макет четко визуализирован, с установленными ограничениями по оси y, чтобы показать верхнюю часть столбцов:
Однако, если я хочу для настройки разделить элементы макета на разных панелях pane
, пределы y вычисляются для первого отображаемого элемента:
pn.Row(
pn.Column(
pn.pane.Markdown("## Group 1"),
layout['group1'],
),
pn.Column(
pn.pane.Markdown("## Group 2"),
layout['group2'],
)
)
Есть ли какой-либо способ принудительно вычислить пределы осей y, как при визуализации всего макета?
В качестве дополнительного замечания я заметил, что если я визуализирую полный макет, А ЗАТЕМ его части, границы осей установлены правильно. Возможно, это можно было бы использовать, но я не знаю, как отобразить макет, а затем скрыть его…
pn.Column(
layout,
pn.Row(
pn.Column(
pn.pane.Markdown("## Group 1"),
layout['group1'],
),
pn.Column(
pn.pane.Markdown("## Group 2"),
layout['group2'],
)
),
)
Комментарии:
1. Снова отличный вопрос. Когда я запускаю ваш код, у меня нет этой проблемы, но когда я делаю выбор внутри графика, а затем сбрасываю значение по умолчанию, я, как и вы, застреваю с неправильными осями. Может быть, это ошибка ?! Вы также можете попробовать опубликовать это на discourse.holoviz.org . где разработчики этих пакетов отвечают на вопросы. Вы также можете попробовать сначала установить последние версии с помощью pip install git github.com/pyviz/hvplot.git и pip устанавливает git github.com/pyviz/holoviews.git
2. Спасибо Sander. К сожалению, я не могу «установить pip», поскольку машина, над которой я работаю, является общей и управляется с помощью conda. Я, тем не менее, обновлю свои пакеты через conda. Я опубликовал на discourse.holoviz, однако я не знаю, соответствует ли публикация ссылки stackoverflow существующему этикету… Я буду держать вас в курсе того, исправило ли это обновление.
3. Да, вы также можете сделать: conda install -c pyviz/label/dev holoviews
4. Мне не удалось установить самую последнюю версию holoviews с помощью conda. Я думаю, что попытаюсь отрегулировать ширину участков с помощью крючков, если это возможно. Еще раз спасибо Sander.
5. установка pip обычно должна работать нормально, даже если вы используете conda, хотя вы можете захотеть
conda remove -f <pkg>
убедиться, что используете версию pip.