我正在尝试在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
有人知道如何正确绘制吗? 它不必使用“转置”数据,因为我只是这样做,因为我不知道如何绘制原始数据。 另一个问题是是否有可能
答案 0 :(得分:1)
aggregator
由datashade / rasterize操作用于汇总数据,实际上对条形图没有影响。如果要汇总数据,建议使用pandas方法进行汇总。但是,就您而言,我不认为这是问题所在,实现您要求的绘图的主要问题是,在全息视图中,图例通常与样式相关联,这意味着您无法轻松地使图例显示过滤器和强>颜色的每个单独巴。
您可以做到这一点,并添加过滤器悬停列,这意味着你仍然可以访问它:
testdf.hvplot.bar('CountCategory', 'Count', by='Name', stacked=True, rot=90, hover_cols=['Filter'])
我可能会提高在HoloViews的问题,以支持从造型分离的传奇人物。