如何在Matplotlib的bar_label()中使用自定义列表为柱状图添加标签
解决Matplotlib bar_label()自定义标签的问题
嘿,刚好我对这个功能比较熟悉,你遇到的问题其实是没找对正确的参数用法~
bar_label()的第一个参数必须是柱状图容器(BarContainer),也就是你之前用的ax.containers[0]或者直接接收ax.bar()的返回值,它不能直接接收数值列表。不过它提供了专门的参数来设置自定义标签,就是labels!
具体做法:
- 保持第一个参数为柱状图容器,比如
ax.containers[0]或者你保存的bars变量 - 通过
labels参数传入你的自定义数值列表,注意要把数值转换成字符串类型(因为标签需要是文本)
示例代码:
import matplotlib.pyplot as plt # 先绘制基础柱状图 fig, ax = plt.subplots() # 保存柱状图容器到bars变量(也可以用ax.containers[0]代替) bars = ax.bar(['苹果', '香蕉', '橙子'], [15, 22, 18]) # 你的自定义数值列表 my_custom_labels = [17, 25, 20] # 使用labels参数传入自定义标签,转成字符串 ax.bar_label(bars, labels=[str(num) for num in my_custom_labels]) plt.show()
这样运行后,柱状图上的标签就会显示你自定义的[17,25,20],而不是默认的柱子高度值啦。
如果你的自定义列表已经是字符串类型,直接传就行,不用额外转换:
ax.bar_label(bars, labels=['17', '25', '20'])
内容的提问来源于stack exchange,提问作者Alex Dana
相关产品推荐
相关产品推荐

