You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于hv.Dataset创建分组条形图?解决条形重叠问题

解决Holoviews分组条形图并排展示的问题

你现在遇到的条形重叠问题,是因为直接把两个独立的条形图叠加在一起,它们共享同一个index作为唯一的维度,所以会在相同位置绘制导致重叠。要实现官方文档里那种并排的分组条形图,核心是把数据转换成长格式,让Holoviews能识别分组维度。

具体步骤和代码修改:

  1. 首先用pd.melt把宽格式的DataFrame转成长格式,这样会生成一个表示类别(A/B)的列和对应的值列;
  2. 然后创建Holoviews Dataset时,把index和类别列都设为kdims(关键维度);
  3. 最后直接调用to.bars就能自动生成并排的分组条形图。

修改后的完整代码如下:

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)))})
# 转成长格式,保留原始index
df_melted = df.melt(ignore_index=False, var_name='Category', value_name='Value')
# 创建Dataset,指定两个关键维度:index和Category
ds = hv.Dataset(df_melted, kdims=['index', 'Category'], vdims='Value')
# 生成分组条形图
ds.to.bars()

额外样式自定义(可选):

如果需要调整图表样式,比如颜色、标签、透明度等,可以直接在opts()里设置,示例如下:

ds.to.bars().opts(
    color='Category',
    alpha=0.8,
    xlabel='Index',
    ylabel='Value',
    title='分组条形图示例'
)

这样就能得到和官方文档示例一致的并排分组条形图啦~

内容的提问来源于stack exchange,提问作者James MIller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:11:54