暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

python数据可视化--matplotlib绘制柱形图

AI小白笔记 2021-11-15
1210

点击蓝字

关注我们

柱形图一般用于类别比较,用柱子的高低来表示数据的大小,在matplotlib中使用plt.bar()函数绘制柱形图,先看一段代码:


import matplotlib.pyplot as plt 
plt.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 plt 
plt.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


文章转载自AI小白笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论