python - 使用数据阴影时如何保持或设置全息视图的宽度和高度?
问题描述
我正在尝试创建一个包含多个类别的图,并为每个类别创建一个图。
由于有这么多的数据点,我正在使用数据阴影。但是 datashade 忽略了我为这些图设置的宽度和高度。
使用数据着色器时,如何保持我已经为绘图设置的宽度和高度?
下面是示例代码:
# 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)
解决方案
这里的问题是应用操作可以对元素执行任何转换,这意味着许多选项在应用转换后不一定有效。因此,操作通常最终会放弃应用于元素的选项,因此有必要在事后重新应用它们。在您的示例中,这意味着您必须执行以下操作:
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)
我同意这并不理想,我们已经讨论过确保至少输入和输出元素共享的所有选项都被传输。这也与这个问题有关,这表明操作(如数据阴影)也应该使用应用于元素的任何选项。
推荐阅读
- javascript - 无法保存从 .Net api 发送的 .pdf 文档
- android - 访问和添加项目到 Spinner
- sql - 基于从源表的一列向目标表插入多列的查询优化
- azure-devops - 即使构建没有发布工件,也会触发发布
- php - 如何在我的网络浏览器上获取注册消息
- ruby - 将变量的名称作为输入并输出其值 - Ruby
- svg - 如何在处理过程中为 svg 着色并保持亮度?
- linux - Grep 并用特殊字符替换文本
- vim - 将位于寄存器内存中的字符串粘贴到“vimL 正常执行”中
- javascript - 在 sessionStorage.setitem 中存储值时仅获取最后输入的值