使用datashade时如何保持或设置holoviews绘图的宽度和高度?

2024-09-27 00:22:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个包含多个类别的绘图,并为每个类别创建一个绘图。
因为有太多的数据点,所以我使用datashade。但是datashade忽略了我为这些绘图设置的宽度和高度。

使用datashader时,如何保持已为绘图设置的宽度和高度?

下面是示例代码:

# 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


Tags: sampleimport绘图dfsize宽度高度demo
1条回答
网友
1楼 · 发布于 2024-09-27 00:22:42

这里的问题是,应用一个操作可以对一个元素执行任何转换,这意味着在应用转换之后,许多选项不一定有效。因此,操作最终通常会删除应用于元素的选项,因此有必要在事后重新应用这些选项。在你的例子中,这意味着你必须:

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)

我同意这并不理想,我们已经讨论过确保输入和输出元素共享的至少所有选项都被转移。这也与this issue有关,它建议操作(如datashade)也应该使用应用于元素的任何选项。你知道吗

相关问题 更多 >

    热门问题