1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 7.绘制统计图形——堆积折线图 间断条形图和阶梯图

7.绘制统计图形——堆积折线图 间断条形图和阶梯图

时间:2022-12-27 00:31:08

相关推荐

7.绘制统计图形——堆积折线图 间断条形图和阶梯图

文章目录

1.用函数stackplot()绘制堆积折线图2.用函数broken_brah()绘制间断条形图3.用函数step()绘制阶梯图

1.用函数stackplot()绘制堆积折线图

堆积折线图是通过绘制不同数据集的折线图而生成的。堆积折线图是按照垂直方向上彼此堆叠且不相互覆盖的排列顺序,绘制若干条折线图而形成的组合图形。

import matplotlib as mplimport matplotlib.pyplot as pltimport numpy as npx = np.arange(1,6,1)y = [0,4,3,5,6]y1 = [1,3,4,2,7]y2 = [3,4,1,6,5]labels = ["BluePlanet","BrownPlanet","GreenPlanet"]colors = ["#8da0cb","#fc8d62","#66c2a5"]plt.stackplot(x,y,y1,y2,labels=labels,colors=colors)plt.legend(loc="upper left")plt.show()

堆积折线图的本质是将若干折线放在同一个坐标轴上,以每条折线下部和下方折线作为填充边界,用一种颜色填充代表此条折线的数值区域,每个填充区域相互堆积但不会相互覆盖,每一个颜色断层代表一条折线所属的数据区域,从而形成如“地表断层”的可视化效果。

2.用函数broken_brah()绘制间断条形图

间断条形图主要用来可视化定性数据的相同指标在时间维度上的指标值的变化情况,实现定性数据的相同指标的变化情况的有效直观比较。

import matplotlib as mplimport matplotlib.pyplot as pltimport numpy as npmpl.rcParams["font.sans-serif"] = ["SimHei"]mpl.rcParams["axes.unicode_minus"] = Falseplt.broken_barh([(30,100),(180,50),(260,70)],(20,8),facecolors="#1f78b4")plt.broken_barh([(60,90),(190,20),(230,30),(280,60)],(10,8),facecolors=("#7fc97f","#beaed4","#fdc086","#ffff99"))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="gray")plt.title("不同地区的歌剧院的演出时间比较")plt.show()

plt.broken_barh([(60,90),(190,20),(230,30),(280,60)],(10,8),facecolors=("#7fc97f","#beaed4","#fdc086","#ffff99"))列表[(60,90),(190,20),(230,30),(280,60)]的元组表示从起点是x轴的数值为60的位置起,沿x轴正方向移动90个单位,其它元组的含义类似。参数(10,8)表示从起点是y轴的数值为10的位置起,沿y轴正方向移动8个单位,这就是每个柱体的高度和垂直起始位置。关键字参数facecolors表示每个柱体的填充颜色,这里使用HEX模式的颜色表示方法。

3.用函数step()绘制阶梯图

阶梯图经常使用在时间序列数据的可视化任务中,凸显时序数据的波动周期和规律。

import matplotlib as mplimport matplotlib.pyplot as pltimport numpy as npx = np.linspace(1,10,10)y = np.sin(x)plt.step(x,y,color="#8dd3c7",where="pre",lw=2)plt.xlim(0,11)plt.xticks(np.arange(1,11,1))plt.ylim(-1.2,1.2)plt.show()

针对代码块step(),介绍where关键字的使用方法。关键字参数where默认的参数值是“pre”,参数值pre表示x轴上的每个数据点对应的y轴上的数值向左绘制水平线直到x轴上的此数据点的左侧相邻数据点为止,也就是说,x轴上的相邻数据点的取值是按照左开右闭区间进行数据点选取的。关键字参数where除了可以取值“pre”还可以取值“post”,参数值“post”表示在x轴上的相邻数据点的取值是按照左闭右开区间进行数据点的选取的,然后用对应y轴上的数值向右侧绘制水平线直到x轴上的此数据点的右侧相邻数值点为止。```pythonimport matplotlib as mplimport matplotlib.pyplot as pltimport numpy as npx = np.linspace(1,10,10)y = np.sin(x)plt.step(x,y,color="#8dd3c7",where="post",lw=2)plt.xlim(0,11)plt.xticks(np.arange(1,11,1))plt.ylim(-1.2,1.2)plt.show()

![在这里插入图片描述](https://img-/5e7edb9a6946426296d338d223937550.png#pic_center)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。