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

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

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

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

x = 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 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="#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 mpl
import matplotlib.pyplot as plt
import numpy as np

x = 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轴上的此数据点的右侧相邻数值点为止。

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

x = 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-blog.csdnimg.cn/5e7edb9a6946426296d338d223937550.png#pic_center)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值