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使用装饰器和线程限制函数执行时间的方法
Apr 18 Python
Python的Flask框架中实现分页功能的教程
Apr 20 Python
设计模式中的原型模式在Python程序中的应用示例
Mar 02 Python
详解Python pygame安装过程笔记
Jun 05 Python
使用Kivy将python程序打包为apk文件
Jul 29 Python
Python实现字典去除重复的方法示例
Jul 31 Python
python操作excel的包(openpyxl、xlsxwriter)
Jun 11 Python
python 剪切移动文件的实现代码
Aug 02 Python
使用python打印十行杨辉三角过程详解
Jul 10 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
Oct 23 Python
如何使用pycharm连接Databricks的步骤详解
Sep 23 Python
基于Python实现天天酷跑功能
Jan 06 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
Terran兵种介绍
2020/03/14 星际争霸
dede3.1分页文字采集过滤规则详说(图文教程)续二
2007/04/03 PHP
header导出Excel应用示例
2014/01/24 PHP
php的GD库imagettftext函数解决中文乱码问题
2015/01/24 PHP
php fseek函数读取大文件两种方法
2016/10/12 PHP
PHP实现统计所有字符在字符串中出现次数的方法
2017/10/17 PHP
PHP递归实现快速排序的方法示例
2017/12/18 PHP
Laravel框架查询构造器简单示例
2019/05/08 PHP
Javascript 不能释放内存.
2006/09/07 Javascript
符合标准的js表单提交的代码
2007/09/13 Javascript
javascript倒计时效果实现
2015/11/12 Javascript
基于bootstrap实现多个下拉框同时搜索功能
2017/07/19 Javascript
js获取文件里面的所有文件名(实例)
2017/10/17 Javascript
layui实现数据表格table分页功能(ajax异步)
2019/07/27 Javascript
小程序中this.setData的使用和注意事项
2019/08/28 Javascript
JS/CSS实现字符串单词首字母大写功能
2019/09/03 Javascript
layui-table获得当前行的上/下一行数据的例子
2019/09/24 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
2020/11/17 Javascript
[00:48]食人魔魔法师至宝“金鹏之幸”全新模型和自定义特效展示
2019/12/19 DOTA
Python的SQLAlchemy框架使用入门
2015/04/29 Python
Python AES加密实例解析
2018/01/18 Python
Python面向对象类的继承实例详解
2018/06/27 Python
pandas的排序和排名的具体使用
2019/07/31 Python
python创建学生成绩管理系统
2019/11/22 Python
python实现五子棋程序
2020/04/24 Python
使用CSS3来代替JS实现交互
2017/08/10 HTML / CSS
HTML5 Canvas中绘制椭圆的4种方法
2015/04/24 HTML / CSS
香港太阳眼镜网上商店:SmartBuyGlasses香港
2016/07/22 全球购物
La Senza官网:北美顶尖性感内衣品牌
2018/08/03 全球购物
Regatta官网:英国最受欢迎的户外服装和鞋类品牌
2019/05/01 全球购物
澳大利亚最受欢迎的超级商场每日优惠:Catch
2020/11/17 全球购物
《雨点》教学反思
2014/02/12 职场文书
中学生运动会口号
2014/06/07 职场文书
2015初一年级组工作总结
2015/07/24 职场文书
Redis数据结构之链表与字典的使用
2021/05/11 Redis
golang生成vcf通讯录格式文件详情
2022/03/25 Golang