点击蓝字
关注我们
柱形图一般用于类别比较,用柱子的高低来表示数据的大小,在matplotlib中使用plt.bar()函数绘制柱形图,先看一段代码:
import matplotlib.pyplot as pltplt.rcParams['font.family']='SimHei'label=['语文','数学','英语','历史']score=[90,80,88,78]plt.bar(label,score)plt.show()

第4行label列表用于表示X轴的数据,第5行score表示各柱子的高度,第7行使用plt.bar()函数生成柱形。
plt.bar()函数还有以下可选参数:
width
表示柱子的宽度,默认值是0.8。
bottom
表示柱子底部y轴的坐标值,默认值是0。
align
表示柱形的对齐方式,align='center'表示柱子与刻度线的中间对齐,align='edge'表示柱子的左边与刻度线对齐。默认值是'center'
color
用于设置柱子的颜色,赋值时只有一个取值,表示所有柱子颜色相同,若赋值时给定一个列表,则表示各柱子颜色各不相同。
edgecolor
表示柱子边缘的颜色。
hatch
用于设置柱子内部填充的符号,取值范围是{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'},还可以多个字符串组合使用。
import matplotlib.pyplot as pltplt.rcParams['font.family']='SimHei'plt.figure(dpi=100)label=['语文','数学','英语','历史']score=[90,80,88,78]color=['b','r','g','purple']plt.bar(label,score,width=0.4,color=color,hatch='/+')plt.title('期末考试各科成绩')plt.grid(ls='--',alpha=0.5,axis='y')plt.show()

第7行设置一个各柱子颜色的列表,在第9行通过参数color进行设置,参数hatch设置了/和+两个填充的符号。
如果想在各柱子的顶部显示该柱子的高度呢(也就是各科成绩),在最后一行之前添加以下代码即可:
for i,j in zip(label,score):plt.text(i,j+1,j,ha='center')

for循环使用两个变量遍历访问迭代对象zip()的每个元素,元素是由X轴和Y轴对应数据组成的元组,变量i获取X轴数据,变量j获取Y轴数据,将数据标签显示在点(i,j+1)处,即柱子顶点往上加1个像素点的地方。变量j同时也是要显示的数据值,ha='center'的意思是数据标签相对柱子的宽度居中对齐(水平对齐),它是horizontalalignment的缩写,取值范围有left,right,center;(多说一句,这里还有垂直对齐,即verticalalignment(va),取值范围有:center,top,bottom,baseline)
柱形图也可以使用plt.xlabel()、plt.yxlabel()、plt.legend()等设置X轴标题、Y轴标题和图例,设置方法与折线图相同,在此不再赘述。
THE END




