使用matplotlib库绘制各种折线图(如何利用matplotlib绘制叠加柱状图)
哈喽,大家晚上好,今天给大家介绍一下如何利用matplotlib绘制叠加柱状图,大概样子长这样:
目的:将三门成绩通过叠加柱状图进行展现
1.导入数据:
import pandas as pd
df=pd.read_excel('成绩表.xlsx')
2.设置中文标签正常显示:
这一步是为了让坐标轴的中文标签能够正常显示:
from matplotlib.font_manager import FontProperties
plt.rcParams['font.sans-serif'] = ['Songti SC']
3.将第一列数据以柱状图形式显示:
首先我们将语文成绩按照柱形图进行展示,高度为语文成绩,x轴显示的是姓名列:
plt.bar(x=df.姓名,height=df.语文,color='red',width=0.8)
4.将数学列进行叠加显示:
1)首先设置x轴的坐标位置:
import numpy as np
x=np.arange(3)
2)高度为数学成绩所对应的数据:
height=df.数学
3)通过bottom设置叠加效果:
bottom代表着y轴所在的坐标,应该摞在原本的语文成绩之上,因此这样写:
bottom=df.语文
4)数学成绩的代码如下:
plt.bar(x=np.arange(3),height=df.数学,bottom=df.语文,color='blue',
width=0.8)
5.英语成绩叠加显示:
与数学成绩的计算方法大同小异,不同的是注意bottom需要在前两个数据再次进行叠加:
plt.bar(x=np.arange(3),height=df.英语,bottom=df.语文 df.数学,
color='yellow',width=0.8)
6.添加图例:
分别在各科目中加入标签:
plt.bar(x=df.姓名,height=df.语文,color='red',width=0.8,label='语文')
plt.bar(x=np.arange(3),height=df.数学,bottom=df.语文,color='blue',
width=0.8,label='数学')
plt.bar(x=np.arange(3),height=df.英语,bottom=df.语文 df.数学,
color='yellow',width=0.8,label='英语')
plt.legend()
好了,今天的文章就先到这里了,明天见!
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com