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中的赋值运算符
May 13 Python
Python深度优先算法生成迷宫
Jan 22 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
May 02 Python
浅谈python中字典append 到list 后值的改变问题
May 04 Python
Django项目中用JS实现加载子页面并传值的方法
May 28 Python
ubuntu16.04制作vim和python3的开发环境
Sep 23 Python
python实现自动解数独小程序
Jan 21 Python
python处理document文档保留原样式
Sep 23 Python
python入门:argparse浅析 nargs='+'作用
Jul 12 Python
python实现每天自动签到领积分的示例代码
Aug 18 Python
python某漫画app逆向
Mar 31 Python
Python快速实现一键抠图功能的全过程
Jun 29 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程序的方法
2009/03/09 PHP
PHP在引号前面添加反斜杠(PHP去除反斜杠)
2013/09/28 PHP
php初始化对象和析构函数的简单实例
2014/03/11 PHP
php读取富文本的时p标签会出现红线是怎么回事
2014/05/13 PHP
PHP之sprintf函数用法详解
2014/11/12 PHP
破解Session cookie的方法
2006/07/28 Javascript
javascript 模式设计之工厂模式学习心得
2010/04/27 Javascript
javascript动态改变img的src属性图片不显示的解决方法
2010/10/20 Javascript
使用jQuery时Form表单元素ID和name命名大忌
2014/03/06 Javascript
JS、CSS以及img对DOMContentLoaded事件的影响
2014/08/12 Javascript
使用JavaScript和C#中获得referer
2014/11/14 Javascript
动态加载jQuery的方法
2015/06/16 Javascript
javascript实现粘贴qq截图功能(clipboardData)
2016/05/29 Javascript
AngularJs基本特性解析(一)
2016/07/21 Javascript
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
vue 和vue-touch 实现移动端左右导航效果(仿京东移动站导航)
2017/04/22 Javascript
基于VUE.JS的移动端框架Mint UI的使用
2017/10/11 Javascript
手写Node静态资源服务器的实现方法
2018/03/20 Javascript
vue vue-Router默认hash模式修改为history需要做的修改详解
2018/09/13 Javascript
详解Vue串联过滤器的使用场景
2020/04/30 Javascript
vue v-for 点击当前行,获取当前行数据及event当前事件对象的操作
2020/09/10 Javascript
[42:52]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
python aiohttp的使用详解
2019/06/20 Python
python opencv 简单阈值算法的实现
2019/08/04 Python
python微信公众号开发简单流程实现
2020/03/09 Python
PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)
2020/06/02 Python
Python用来做Web开发的优势有哪些
2020/08/05 Python
Python Opencv实现单目标检测的示例代码
2020/09/08 Python
英国拳击装备购物网站:RDX Sports
2018/01/23 全球购物
Lentiamo荷兰:在线订购隐形眼镜、隐形眼镜液和太阳镜
2019/10/25 全球购物
中科创达面试题
2016/12/28 面试题
师范生自我鉴定范文
2013/10/05 职场文书
金融行业职业生涯规划范文
2014/01/17 职场文书
小学少先队活动总结
2015/05/08 职场文书
golang 生成对应的数据表struct定义操作
2021/04/28 Golang
Win7/8.1用户可以免费升级到Windows 11系统吗?
2021/11/21 数码科技