Python何绘制带有背景色块的折线图


Posted in Python onApril 23, 2022

前言:

如果正在看文章的你,还不会绘制折线图,请前往本人的主页看如何使用matplotlib绘制折线图这篇文章,该文章会仔细而详尽的告诉你绘制折线图的方法。言归正传,给折线图加色块,算是折线图的附加内容。加一个函数就可以搞定。效果图如下所示:

Python何绘制带有背景色块的折线图

绘制带有色块的折线图的一般步骤:

第一步:绘制出基础的折线图:

        在绘制色块前,我们可以使用绘制折线图的一般操作,绘制出折线图做基础准备。

第二步:计算每个坐标点对应的上下界:

        其实色块看起来就像该坐标点在y轴方向上下平移所得的线条在x轴方向拼接而成。在绘制色块之前,我们需要计算出上下界。这个和获取图像点的坐标一样的道理。

# 算标准差
yTop = [y[i] + np.std(data[i]) for i in range(len(data))]
yBottom = [y[i] - np.std(data[i]) for i in range(len(data))]

这个是我写的获得上下界的程序。当然上下界看你自己,内容自定。不过得存在列表里,要求和获取坐标点一样。

第三步:绘制色块:

        绘制色块其实很简单,调用函数fill_between就可以。

plt.fill_between(x, yTop, yBottom ,color="lightgreen",label="Standard deviation")#填充色块

该函数第一个值对应的是点的x坐标,第二个值就是各点对应的上界,第三个值就是各点对应的下界。后面就是一些基础的属性的设置,自然不必多说。

代码示例:

import numpy as np
import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
data = [[1, 2, 3, 4, 5, 6],
        [2, 4, 6, 8, 10, 12],
        [1, 3, 5, 7, 9, 11],
        [1.1, 2.2, 3.3, 4.4, 5.5, 6.6],
        [3, 6, 9, 12, 15, 18],
        [4, 8, 12, 16, 20, 24],
        [5, 10, 15, 20, 25, 30],
        [1.5, 2.5, 3.5, 4.5, 5.5, 6.5],
        [1, 4, 7, 10, 13, 16],
        [2, 5, 8, 11, 14, 17]]
y = [np.mean(i) for i in data]


# 绘制图形
plt.plot(x, y, linewidth=1, color="orange", marker="o",label="Mean value")
# 算标准差
yTop = [y[i] + np.std(data[i]) for i in range(len(data))]
yBottom = [y[i] - np.std(data[i]) for i in range(len(data))]
plt.fill_between(x, yTop, yBottom ,color="lightgreen",label="Standard deviation")#填充色块
# 设置横纵坐标
plt.xticks([0, 2, 4, 6, 8, 10, 12])
plt.yticks([0, 5, 10, 15, 20, 25])
plt.legend(["Mean value","Standard deviation"],loc="upper left")#设置线条标识
plt.grid()  # 设置网格模式
#设置每个点上的数值
for i in range(10):
        plt.text(x[i], y[i], y[i], fontsize=12, color="black", style="italic", weight="light", verticalalignment='center',horizontalalignment='right', rotation=90)
plt.show()

Python何绘制带有背景色块的折线图


Tags in this post...

Python 相关文章推荐
浅谈numpy库的常用基本操作方法
Jan 09 Python
python写一个md5解密器示例
Feb 23 Python
Python常见字典内建函数用法示例
May 14 Python
Python运维自动化之nginx配置文件对比操作示例
Aug 29 Python
Python PO设计模式的具体使用
Aug 16 Python
使用IDLE的Python shell窗口实例详解
Nov 19 Python
python 实现生成均匀分布的点
Dec 05 Python
pytorch 实现在预训练模型的 input上增减通道
Jan 06 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
Oct 15 Python
python Gabor滤波器讲解
Oct 26 Python
详解python3类型注释annotations实用案例
Jan 20 Python
python中zip()函数遍历多个列表方法
Feb 18 Python
python中Pyqt5使用Qlabel标签播放视频
Apr 22 #Python
Python使用MapReduce进行简单的销售统计
python使用pycharm安装pyqt5以及相关配置
Python使用DFA算法过滤内容敏感词
python游戏开发之pygame实现接球小游戏
Apr 22 #Python
python游戏开发Pygame框架
Apr 22 #Python
python中的random模块和相关函数详解
Apr 22 #Python
You might like
一拳超人中怪人协会钦定! S级别最强四人!
2020/03/02 日漫
php curl模拟post请求和提交多维数组的示例代码
2015/11/19 PHP
Yii2搭建后台并实现rbac权限控制完整实例教程
2016/04/28 PHP
PHP创建多级目录的两种方法
2016/10/28 PHP
PHP获取本周所有日期或者最近七天所有日期的方法
2018/06/20 PHP
PHP合并两个或多个数组的方法
2019/01/20 PHP
正负小数点后两位浮点数实现原理及代码
2013/09/06 Javascript
appendChild() 或 insertBefore()使用与区别介绍
2013/10/11 Javascript
如何设置一定时间内只能发送一次请求
2014/02/28 Javascript
JS运动相关知识点小结(附弹性运动示例)
2016/01/08 Javascript
几种二级联动案例(jQuery\Array\Ajax php)
2016/08/13 Javascript
JS实现的手机端精简幻灯片效果
2016/09/05 Javascript
详解Angular的数据显示优化处理
2016/12/26 Javascript
Bootstrap警告框(Alert)插件使用方法
2017/03/21 Javascript
Angular中管道操作符(|)的使用方法
2017/12/15 Javascript
React Native之prop-types进行属性确认详解
2017/12/19 Javascript
Vue瀑布流插件的使用示例
2018/09/19 Javascript
[14:36]2014 DOTA2国际邀请赛中国区预选赛5.21 Orenda VS NE
2014/05/22 DOTA
Python 两个列表的差集、并集和交集实现代码
2016/09/21 Python
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
2017/07/12 Python
详解python里使用正则表达式的全匹配功能
2017/10/19 Python
Python使用wget实现下载网络文件功能示例
2018/05/31 Python
python 五子棋如何获得鼠标点击坐标
2019/11/04 Python
windows中安装Python3.8.0的实现方法
2019/11/19 Python
Jupyter Notebook 实现正常显示中文和负号
2020/04/24 Python
python 如何对logging日志封装
2020/12/02 Python
python中编写函数并调用的知识点总结
2021/01/13 Python
德国高性价比网上药店:medpex
2017/07/09 全球购物
护理人员的自我评价分享
2014/03/15 职场文书
怎么写工作检讨书
2014/11/16 职场文书
2014年化工厂工作总结
2014/11/25 职场文书
违规违纪检讨书范文
2015/05/06 职场文书
技术入股协议书
2016/03/22 职场文书
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
2021/05/12 Python
关于python类SortedList详解
2021/09/04 Python
详解JS数组方法
2021/11/20 Javascript