如何绘制同标签双并列柱状直方图?参考@ImportanceOfBeingErnest回答
实现每个标签对应双并列柱状条的直方图(5个标签示例)
嘿,这事儿好办!基于@ImportanceOfBeingErnest的思路,我给你写了一个完整的示例代码,刚好对应5个标签、每个标签两个并列柱子的需求,用Python的matplotlib就能轻松实现:
import matplotlib.pyplot as plt import numpy as np # 定义你的数据 labels = ['标签1', '标签2', '标签3', '标签4', '标签5'] list1 = [10, 15, 8, 12, 9] list2 = [12, 11, 14, 9, 13] # 设置柱子宽度 bar_width = 0.35 # 生成每个标签的基准位置 x = np.arange(len(labels)) # 绘制两组柱子 plt.bar(x - bar_width/2, list1, width=bar_width, label='list1') plt.bar(x + bar_width/2, list2, width=bar_width, label='list2') # 添加标签、标题和图例 plt.xlabel('标签') plt.ylabel('数值') plt.title('每个标签对应双并列柱状条') plt.xticks(x, labels) plt.legend() plt.tight_layout() plt.show()
代码关键点解释:
- 用
x = np.arange(len(labels))生成每个标签的基准横坐标 - 通过
x - bar_width/2和x + bar_width/2分别调整两组柱子的位置,让它们在同一标签下并排 - 统一设置
bar_width保证两个柱子宽度一致,不会重叠或间距过大 - 最后用
plt.xticks(x, labels)把基准位置替换成自定义标签
运行这段代码就能得到你想要的效果啦,每个标签下都会有对应list1和list2的两个并列柱状条~
内容的提问来源于stack exchange,提问作者Joseph
相关产品推荐
相关产品推荐

