Python绘制多彩柱状图并标注具体数值的实现方案

云舒
云舒
发布时间:2026-10-13 | 6人浏览过
原创

本文介绍如何使用Python的Matplotlib库绘制具有不同颜色的柱状图,并在柱子顶部精确显示数值。通过解析bar函数的参数及利用plt.text进行坐标定位,实现自定义颜色与数据标签的自动添加,附带完整代码示例供参考。

在Python中绘制柱状图相对简单,但如何为不同的柱子设置各异的颜色,并在柱子顶端准确显示对应的数值,是许多开发者关注的问题。

实现这一目标主要依赖于以下方法:

matplotlib.pyplot.bar(left, height, width=0.8, bottom=None, hold=None, data=None, **kwargs)

各参数含义如下:

left:定义每个柱形左侧的X轴坐标位置。

height:设定每个柱形的高度值。

width:控制柱形的宽度,默认为0.8。

bottom:指定柱形底部的Y轴坐标,默认为None。

color:指定柱形的显示颜色。

以下是具体的代码实现示例(使用前请确保已安装numpy和matplotlib库):

import numpy as np 
import matplotlib.mlab as mlab 
import matplotlib.pyplot as plt 
 
X = [0.5] 
XX=[1.5] 
Y = [20] 
YY=[23] 
#fig = plt.figure() 
plt.bar(X, Y, 1, color="blue") 
plt.bar(XX,YY,1,color="yellow") #使用不同颜色 
plt.xlabel("X-axis") #设置X轴Y轴名称 
plt.ylabel("Y-axis") 
plt.title("bar chart")
#使用text显示数值 
for a,b in zip(X,Y): 
 plt.text(a, b+0.05, '%.0f' % b, ha='center', va= 'bottom',fontsize=11) 
for a,b in zip(XX,YY): 
 plt.text(a, b+0.05, '%.0f' % b, ha='center', va= 'bottom',fontsize=11)  
plt.ylim(0,37)  #设置Y轴上下限 
plt.show()

执行上述代码后,生成的图形效果如下:

在前置代码中,x和y的值分别代表了柱状图中各柱子在坐标系中的位置。通过for循环遍历每一对x、y坐标(即a、b),利用plt.text函数在指定位置添加文字说明,从而生成数字标签。这种循环机制确保了每个柱子都能对应显示其标签。

具体而言,a, b+0.05表示在柱子对应x值、y值上方偏移0.05的位置处标注文字;'%.0f' % b指定了标注内容为每个柱子对应的y值(取整);ha='center'和va='bottom'分别设定了水平对齐和垂直对齐方式,fontsize则用于控制文字的大小。

以上关于Python绘制多彩柱状图并显示数值的方法即为全部内容,希望能对读者有所帮助,也欢迎大家继续支持本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表