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 相关文章推荐
python中使用mysql数据库详细介绍
Mar 27 Python
Python 基于Twisted框架的文件夹网络传输源码
Aug 28 Python
一些Centos Python 生产环境的部署命令(推荐)
May 07 Python
Python OpenCV处理图像之滤镜和图像运算
Jul 10 Python
Python docx库用法示例分析
Feb 16 Python
Python图像处理库PIL中图像格式转换的实现
Feb 26 Python
python数据类型可变不可变知识点总结
Mar 06 Python
python 轮询执行某函数的2种方式
May 03 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
May 16 Python
python为什么要安装到c盘
Jul 20 Python
python list等分并从等分的子集中随机选取一个数
Nov 16 Python
Python使用BeautifulSoup4修改网页内容
May 20 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
如何在PHP中使用Oracle数据库(1)
2006/10/09 PHP
php中使用Curl、socket、file_get_contents三种方法POST提交数据
2011/08/12 PHP
PHP中echo和print的区别
2014/08/28 PHP
php+jQuery递归调用POST循环请求示例
2016/10/14 PHP
PHP 实现手机端APP支付宝支付功能
2018/06/07 PHP
js字符编码函数区别分析
2011/12/28 Javascript
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
2013/08/05 Javascript
Sortable.js拖拽排序使用方法解析
2016/11/04 Javascript
jQuery实现ToolTip元素定位显示功能示例
2016/11/23 Javascript
老生常谈javascript的面向对象思想
2017/08/22 Javascript
基于Require.js使用方法(总结)
2017/10/26 Javascript
Vue项目中如何引入icon图标
2018/03/28 Javascript
Vue使用高德地图搭建实时公交应用功能(地图 + 附近站点+线路详情 + 输入提示+换乘详情)
2018/05/16 Javascript
工作中常用到的ES6语法
2018/09/04 Javascript
Koa 使用小技巧(小结)
2018/10/22 Javascript
利用Angular2的Observables实现交互控制的方法
2018/12/27 Javascript
vue项目前端错误收集之sentry教程详解
2019/05/27 Javascript
Node对CommonJS的模块规范
2019/11/06 Javascript
用js限制网页只在微信浏览器中打开(或者只能手机端访问)
2020/12/24 Javascript
封装一下vue中的axios示例代码详解
2020/02/16 Javascript
Python基础教程之浅拷贝和深拷贝实例详解
2017/07/15 Python
Python中装饰器高级用法详解
2017/12/25 Python
python 实现selenium断言和验证的方法
2019/02/13 Python
python保存字典和读取字典的实例代码
2019/07/07 Python
python logging模块书写日志以及日志分割详解
2019/07/22 Python
Django框架 querySet功能解析
2019/09/04 Python
使用python+whoosh实现全文检索
2019/12/09 Python
使用python实现哈希表、字典、集合操作
2019/12/22 Python
用python解压分析jar包实例
2020/01/16 Python
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
竞赛口号大全
2014/06/16 职场文书
2014坚持党风廉政建设思想汇报
2014/09/18 职场文书
2014小学一年级班主任工作总结
2014/12/05 职场文书
辩护意见书
2015/06/04 职场文书
深度学习tensorflow基础mnist
2021/04/14 Python
Linux中Nginx的防盗链和优化的实现代码
2021/06/20 Servers