繁体   English   中英

如何从hv.Dataset创建分组条形图?

[英]How to create grouped barplot from hv.Dataset?

我想使用Holoviews数据集从pandas.DataFrame创建分组的条形图。

特别是,我希望按其原始列对条进行分组。 现在,条形图相互重叠:

import pandas as pd
import holoviews as hv
hv.extension('bokeh')

df = pd.DataFrame({'A': list(range(10,15)),
                   'B' : list(reversed(range(20,25)))})
ds = hv.Dataset(df, kdims='index')
ds.to.bars(vdims='A')*ds.to.bars(vdims='B').opts(alpha=.5)

结果是: 当前代码段

但是,我想让它们并排放置,类似于官方文档 (页面底部)中显示的情节。

对于直接使用pandas DataFrames进行绘图,我建议使用hvPlot库,该库基于HoloViews构建。 HoloViews可以很好地处理所谓的整洁数据 ,而hvPlot可以很好地处理整洁和宽泛的数据。 使用hvPlot生成所需的绘图非常简单:

import hvplot.pandas
df.hvplot.bar()

条形图

直接使用HoloViews,您将必须使用pd.melt将数据转换为所谓的整齐格式。 看起来像这样:

hv.Bars(pd.melt(df.reset_index(), ['index']), ['index', 'variable'], 'value')

melt_example

有关pd.melt正在做什么的pd.melt说明,请参见此可视化

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM