熊猫图框的Hvplot / bokeh汇总条形图

时间:2019-01-29 14:50:48

标签: python pandas bokeh holoviews

我正在尝试在jupyter笔记本中使用HVPlot和bokeh打印“简单”条形图。 这是一些简化的数据:

“我的数据”最初看起来像这样:

我的目标是获得类似这样的条形图(请注意,它不必堆叠。唯一重要的是总计。)

由于我不知道如何获取带有某些列的总和的条形图,因此我使用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

,它什么都不会改变

有人知道如何正确绘制吗? 它不必使用“转置”数据,因为我只是这样做,因为我不知道如何绘制原始数据。 另一个问题是是否有可能

1 个答案:

答案 0 :(得分:1)

aggregator由datashade / rasterize操作用于汇总数据,实际上对条形图没有影响。如果要汇总数据,建议使用pandas方法进行汇总。但是,就您而言,我不认为这是问题所在,实现您要求的绘图的主要问题是,在全息视图中,图例通常与样式相关联,这意味着您无法轻松地使图例显示过滤器颜色的每个单独巴。

您可以做到这一点,并添加过滤器悬停列,这意味着你仍然可以访问它:

testdf.hvplot.bar('CountCategory', 'Count', by='Name', stacked=True, rot=90, hover_cols=['Filter'])

barplot1

我可能会提高在HoloViews的问题,以支持从造型分离的传奇人物。