我正在使用Hvplot根据数据所属的类别创建2个散点图。
由于数据点太多,因此我正在使用数据阴影。
当我不使用数据阴影时,我的绘图工作正常。
但是,当我在下面的代码中设置datashade = True时,出现以下错误:
警告:param.dynamic_operation:引发可调用 “ ValueError('未在:Scatter
上找到聚合列类别 [col1](col2)元素。确保聚合器引用了现有的 尺寸。',)“。以dynamic_operation(height = 300,scale = 1.0, 宽度= 1200,x_range =无,y_range =无)ValueError:在:Scatter [col1]上找不到聚合列类别 (col2)元素。确保聚合器引用了现有的 尺寸。
示例代码:
# 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,
})
# this works fine if I would set datashade=False, but with datashade=True it gives an error
demo_df.hvplot(
kind='scatter',
x='col1', y='col2',
by='category',
subplots=True,
width=1200,
datashade=True
).cols(1)
答案 0 :(得分:2)
我认为它试图在“类别”列上进行汇总,尽管事实上维度是按分组的。我已经在hvPlot中打开了this issue,希望很快能解决。现在,您可以使用以下解决方法:
demo_df.hvplot(
kind='scatter',
x='col1', y='col2',
groupby='category',
width=1200,
datashade=True
).layout().cols(1)