我试图打印一个“简单的”条形图,使用HVPlot和bokeh在jupyter笔记本。 以下是一些简化数据:
我的目标是得到一个这样的条形图(注意,它不必堆叠。唯一重要的是总数。)
由于我不知道如何获得包含某些列总和的条形图,所以我使用pandas.melt
对数据进行建模,使其看起来像这样:
有了这些数据,我可以画出它,但是这些值不能求和。相反,彼此背后有多个铁条。
下面是我用来测试的代码:
testd = {'Name': ['Item1', 'Item2','Item3','Item3'],'Filter': ['F1','F2','F1','F1'],
'Count': [1,5,2,1], 'CountCategory': ['CountA','CountB','CountA','CountD']}
testdf = pd.DataFrame(data=testd)
testdf.hvplot.bar('CountCategory','Count',groupby='Filter', rot=90, aggregator=np.sum)
如果我省略aggregator=np.sum
,它不会改变任何东西
有人知道如何正确地绘制这个图吗? 它不必使用“转置”数据,因为我这样做只是因为我不知道如何绘制原始数据。 另一个问题是是否有可能
datashade/rasterize操作使用
aggregator
来聚集数据,实际上对条形图没有影响。如果您想聚合数据,我建议您使用pandas方法。但是在你的例子中,我不认为这是问题所在,实现你所要求的绘图的主要问题是,在全息视图中,图例通常与样式相关联,这意味着您无法轻松地让图例分别显示过滤器和颜色。在您可以执行此操作并将筛选器添加为悬停列,这意味着您仍然可以访问它:
我可能会在HoloViews中提出一个问题来支持与样式分离的图例。在
相关问题 更多 >
编程相关推荐