Как сохранить или установить ширину и высоту моего графика holoviews при использовании datashade? - PullRequest
0 голосов
/ 14 октября 2019

Я пытаюсь создать график с несколькими категориями, и иметь график для каждой категории.
Так как точек данных так много, я использую dashashde. Но datashade игнорирует ширину и высоту, которые я установил для этих графиков.

Как мне сохранить ширину и высоту, которые я уже установил для своего графика при использовании dashashader?

Ниже приведен пример кода для этого:

# import libraries
import numpy as np
import pandas as pd

import hvplot
import hvplot.pandas

import holoviews as hv
hv.extension('bokeh')

from holoviews.operation.datashader import datashade

# create some sample data
sample_scatter1 = np.random.normal(loc=0.0, size=50)
sample_scatter2 = np.random.normal(loc=300., size=50)
sample_category = np.random.choice(2, size=50)

demo_df = pd.DataFrame({
    'col1': sample_scatter1,
    'col2': sample_scatter2,
    'category': sample_category,
})

hv_demo_df = hv.Dataset(demo_df, kdims=['col1', 'category'], vdims=['col2'])

# when i plot without datashade, width works fine
# but with using datashade here i lose the width that i set
datashade(hv_demo_df.to.scatter().opts(width=1000).layout('category')).cols(1)


График, когда не используется datashade: not using datashade then width and height can be easily adjusted


График при использовании datashade гдеЯ теряю ширину и высоту, которые я установил: now using datashade how can i set width and height

1 Ответ

1 голос
/ 14 октября 2019

Проблема здесь в том, что применение операции может выполнить любое преобразование элемента, что означает, что многие параметры не обязательно являются действительными после применения преобразования. Поэтому операции обычно заканчивают тем, что опускают опции, примененные к элементу, что делает необходимым их повторное применение после факта. В вашем примере это означает, что вы должны сделать:

hv_demo_df = hv.Dataset(demo_df, kdims=['col1', 'category'], vdims=['col2'])

datashade(hv_demo_df.to.scatter().layout('category')).opts(hv.opts.RGB(width=1000)).cols(1)

Я согласен, что это не идеально, и мы обсудили, как обеспечить передачу по крайней мере всех опций, совместно используемых элементами ввода и вывода. Это также связано с этой проблемой , которая предполагает, что операция (например, datashade) должна также использовать любые параметры, примененные к элементу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...