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 fileinput模块使用实例
Jun 03 Python
Python获取SQLite查询结果表列名的方法
Jun 21 Python
Python基于递归算法实现的走迷宫问题
Aug 04 Python
浅谈Python中重载isinstance继承关系的问题
May 04 Python
对Python3中bytes和HexStr之间的转换详解
Dec 04 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
Jan 15 Python
pandas进行时间数据的转换和计算时间差并提取年月日
Jul 06 Python
python 使用pdfminer3k 读取PDF文档的例子
Aug 27 Python
解决Python使用列表副本的问题
Dec 19 Python
深入浅析python的第三方库pandas
Feb 13 Python
Python使用内置函数setattr设置对象的属性值
Oct 16 Python
Python实现学生管理系统(面向对象版)
Jun 24 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 park、unpark、ord 函数使用方法(二进制流接口应用实例)
2010/10/19 PHP
深入php self与$this的详解
2013/06/08 PHP
php连接oracle数据库及查询数据的方法
2014/12/29 PHP
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
open 动态修改img的onclick事件示例代码
2013/11/13 Javascript
js运动动画的八个知识点
2015/03/12 Javascript
JavaScript使用addEventListener添加事件监听用法实例
2015/06/01 Javascript
jQuery多条件筛选如何实现
2015/11/04 Javascript
Bootstrap modal 多弹窗之叠加显示不出弹窗问题的解决方案
2017/02/23 Javascript
jquery插件canvaspercent.js实现百分比圆饼效果
2017/07/18 jQuery
简单谈谈vue的过渡动画(推荐)
2017/10/11 Javascript
VueJs使用Amaze ui调整列表和内容页面
2017/11/30 Javascript
在vue里使用codemirror遇到的问题
2018/11/01 Javascript
Vue CLI2升级至Vue CLI3的方法步骤
2019/05/20 Javascript
elementUI select组件使用及注意事项详解
2019/05/29 Javascript
Vue中的循环及修改差值表达式的方法
2019/08/29 Javascript
layui按条件隐藏表格列的实例
2019/09/19 Javascript
JavaScript使用localStorage存储数据
2019/09/25 Javascript
js实现点击按钮随机生成背景颜色
2020/09/05 Javascript
Flask框架学习笔记之消息提示与异常处理操作详解
2019/08/15 Python
pytorch载入预训练模型后,实现训练指定层
2020/01/06 Python
python实现录音功能(可随时停止录音)
2020/10/26 Python
施华洛世奇波兰官网:SWAROVSKI波兰
2019/06/18 全球购物
Book Depository美国:全球领先的专业网上书店之一
2019/08/14 全球购物
怎样在程序里获得一个空指针
2015/01/24 面试题
高中毕业自我鉴定范文
2013/10/02 职场文书
护士毕业生自荐信
2014/02/07 职场文书
老人祝寿主持词
2014/03/28 职场文书
政府绩效管理实施方案
2014/05/04 职场文书
奥运会口号
2014/06/13 职场文书
计算机网络专业自荐信
2014/07/04 职场文书
高三英语复习计划
2015/01/19 职场文书
实习介绍信模板
2015/01/30 职场文书
小学班主任研修日志
2015/11/13 职场文书
《亲亲我的妈妈》观后感(3篇)
2019/09/26 职场文书
MySQL提取JSON字段数据实现查询
2022/04/22 MySQL