哈喽,大家晚上好,今天给大家介绍一下如何利用matplotlib绘制叠加柱状图,大概样子长这样:

目的:将三门成绩通过叠加柱状图进行展现


使用matplotlib库绘制各种折线图(如何利用matplotlib绘制叠加柱状图)(1)


1.导入数据:

import pandas as pd

df=pd.read_excel('成绩表.xlsx')

使用matplotlib库绘制各种折线图(如何利用matplotlib绘制叠加柱状图)(2)

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)

使用matplotlib库绘制各种折线图(如何利用matplotlib绘制叠加柱状图)(3)

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)

使用matplotlib库绘制各种折线图(如何利用matplotlib绘制叠加柱状图)(4)

5.英语成绩叠加显示:

与数学成绩的计算方法大同小异,不同的是注意bottom需要在前两个数据再次进行叠加:

plt.bar(x=np.arange(3),height=df.英语,bottom=df.语文 df.数学,

color='yellow',width=0.8)

使用matplotlib库绘制各种折线图(如何利用matplotlib绘制叠加柱状图)(5)

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()

使用matplotlib库绘制各种折线图(如何利用matplotlib绘制叠加柱状图)(6)

好了,今天的文章就先到这里了,明天见!

,