堆积图就是将若干统计图形堆叠起来的统计图形,是一种组合式图形。下面,就结合前面讲过的柱状图和条形图的绘制方式,具体讲解堆叠柱状图和堆叠条形图的实现方式。

1.堆积柱状图

(1)将函数bar()中的参数bottom的取值设定为列表y,列表y1=[2,6,3,8,5]代表另一套试卷的份数,函数bar(x,y,bottom=y,color=“r”)就会输出堆积柱状图。

import matplotlib as mpl
import matplotlib.pyplot as plt


mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False

x = [1,2,3,4,5]
y = [6,10,4,5,1]
y1 = [2,6,3,8,5]

plt.bar(x,y,align='center',color='blue',tick_label=['A','B','C','D','E'],label='班级A')
plt.bar(x,y1,align='center',bottom=y,color="y",label="班级B")

plt.xlabel("测试难度")
plt.ylabel("试卷份数")

plt.legend()

plt.show()

(2)运行结果:

在这里插入图片描述

2.堆积条形图

(1)将函数barh()中的参数left的取值设定为列表y,列表y1=[2,6,3,8,5]代表另一套试卷的份数,函数barh(x,y,left=y,color=“r”)就会输出堆积柱状图。

import matplotlib as mpl
import matplotlib.pyplot as plt


mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False

x = [1,2,3,4,5]
y = [6,10,4,5,1]
y1 = [2,6,3,8,5]

plt.barh(x,y,align='center',color='blue',tick_label=['A','B','C','D','E'],label='班级A')
plt.barh(x,y1,align='center',left=y,color="y",label="班级B")

plt.xlabel("测试难度")
plt.ylabel("试卷份数")

plt.legend()

plt.show()

(2)运行结果:

在这里插入图片描述

3.多数据并列柱状图

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np


mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False

x = np.arange(5)
y = [6,10,4,5,1]
y1 = [2,6,3,8,5]

bar_width = 0.35
tick_label=['A','B','C','D','E']

plt.bar(x, y, bar_width,color="c",align="center", label="班级A", alpha=0.5)
plt.bar(x+bar_width, y1, bar_width,color="b",align="center",label="班级B", alpha=0.5)

plt.xlabel("测试难度")
plt.ylabel("试卷份数")

plt.xticks(x+bar_width/2,tick_label)

plt.legend()

plt.show()

运行结果:

在这里插入图片描述

4.多数据平行条形图

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np


mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False

x = np.arange(5)
y = [6,10,4,5,1]
y1 = [2,6,3,8,5]

bar_width = 0.35
tick_label=['A','B','C','D','E']

plt.barh(x, y, bar_width,color="c",align="center", label="班级A", alpha=0.5)
plt.barh(x+bar_width, y1, bar_width,color="b",align="center",label="班级B", alpha=0.5)

plt.xlabel("试卷份数")
plt.ylabel("测试难度")

plt.yticks(x+bar_width/2,tick_label)

plt.legend()

plt.show()

运行结果:

在这里插入图片描述

5.堆积折线图

用函数stackplot()绘制堆积折线图,本质就是将若干条折线放在同一个坐标轴上,以每条折线下部和下方折线作为填充边界,用一种颜色充满此条折线的数值区域。

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np


mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False

x = np.arange(1,6,1)
y = [0,4,3,5,6]
y1 = [2,6,3,8,5]
y2 = [3,4,1,6,5]

labels = ["BluePlanet","BrownPlanet","GreenPlanet"]
colors = ["blue","brown","green"]

plt.stackplot(x,y,y1,y2,labels=labels,colors=colors)

plt.legend(loc="upper left")

plt.show()

运行结果:

在这里插入图片描述

6.间断条形图

用函数broken_barn()绘制间断条形图,主要是来可视化定性数据

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np


mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False

plt.broken_barh([(30,100),(180,50),(260,70),],(20,8),facecolors='Purple')
plt.broken_barh([(60,90),(190,20),(230,30),(280,60)],(10,8),facecolors=('b','y','g','r'))

plt.xlim(0,360)
plt.ylim(5,35)
plt.xlabel("演出时间")

plt.xticks(np.arange(0,361,60))
plt.yticks([15,25],["歌剧院A","歌剧院B"])

plt.grid(ls="-",lw=1,color="grey")

plt.title("不同地区的歌剧院的演出时间比较")

plt.show()

运行结果:

在这里插入图片描述

7.阶梯图

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 10)
y = np.sin(x)

plt.step(x,y,color='blue',where='pre',lw='2')

plt.xlim(0,11)
plt.xticks(np.arange(1,11,1))
plt.ylim(-1.2,1.2)

plt.show()

运行结果:

在这里插入图片描述

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐