gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 08:23:42 24 4
gpt4 key购买 nike

我想使用 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)

这会导致: current snippet

但是我希望将它们并排放置,类似于 official docs 中的情节。 (页面底部)。

最佳答案

如果要直接使用 pandas DataFrames 进行绘图,我会推荐 hvPlot构建在 HoloViews 之上的库。 HoloViews 可以很好地处理所谓的 tidy data ,而 hvPlot 的构建是为了很好地处理整齐和广泛的数据。使用 hvPlot 生成您想要的绘图非常简单:

import hvplot.pandas
df.hvplot.bar()

bar plot

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

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

melt_example

有关 pd.melt 正在执行的操作的简洁说明,请参阅 this visualization

关于python - 如何从 hv.Dataset 创建分组条形图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54440096/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com