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中__call__用法实例
Aug 29 Python
Python描述器descriptor详解
Feb 03 Python
Python下的subprocess模块的入门指引
Apr 16 Python
Python实现基于权重的随机数2种方法
Apr 28 Python
使用 Django Highcharts 实现数据可视化过程解析
Jul 31 Python
Python 面向对象之封装、继承、多态操作实例分析
Nov 21 Python
Python Celery多队列配置代码实例
Nov 22 Python
django admin 添加自定义链接方式
Mar 11 Python
Python 实现敏感目录扫描的示例代码
May 21 Python
Python 使用双重循环打印图形菱形操作
Aug 09 Python
Python入门之使用pandas分析excel数据
May 12 Python
Python 线程池模块之多线程操作代码
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中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
2010/12/19 PHP
PHP显示今天、今月、上月、今年的起点/终点时间戳的代码
2011/05/25 PHP
UCenter 批量添加用户的php代码
2012/07/17 PHP
javascript延时重复执行函数 lLoopRun.js
2007/06/29 Javascript
jquery $.getJSON()跨域请求
2011/12/21 Javascript
图标线性回归斜着移动到指定的位置
2013/08/16 Javascript
jQuery制作简洁的多级联动Select下拉框
2014/12/23 Javascript
深入分析Cookie的安全性问题
2015/03/01 Javascript
不得不分享的JavaScript常用方法函数集(下)
2015/12/25 Javascript
jQuery实现导航滚动到指定内容效果完整实例【附demo源码下载】
2016/09/20 Javascript
Select2.js下拉框使用小结
2016/10/24 Javascript
解决URL地址中的中文乱码问题的办法
2017/02/10 Javascript
使用mock.js随机数据和使用express输出json接口的实现方法
2018/01/07 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
Node.JS用纯JavaScript生成图片或滑块式验证码功能
2019/09/12 Javascript
vue实现输入一位数字转汉字功能
2019/12/13 Javascript
JavaScript实现英语单词题库
2019/12/24 Javascript
通过Kettle自定义jar包供javascript使用
2020/01/29 Javascript
ElementUI中el-tree节点的操作的实现
2020/02/27 Javascript
jquery实现简单拖拽效果
2020/07/20 jQuery
vue 动态添加class,三个以上的条件做判断方式
2020/11/02 Javascript
vue+element table表格实现动态列筛选的示例代码
2021/01/14 Vue.js
[06:15]2016国际邀请赛中国区预选赛单车采访:我顶WINGS
2016/06/27 DOTA
[01:32]寻找你心中的那团火 DOTA2 TI9火焰传递活动今日开启
2019/05/16 DOTA
python list多级排序知识点总结
2019/10/23 Python
如何在windows下安装配置python工具Ulipad
2020/10/27 Python
华为俄罗斯官方网上商城:购买Huawei手机和平板
2017/04/21 全球购物
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
家长给幼儿园的表扬信
2014/01/09 职场文书
九年级英语教学反思
2014/01/31 职场文书
营销学习心得体会
2014/09/12 职场文书
二年级上册数学教学计划
2015/01/20 职场文书
材料采购员岗位职责
2015/04/03 职场文书
新郎婚礼致辞
2015/07/27 职场文书
护士岗位竞聘书
2015/09/15 职场文书
Python自动操作神器PyAutoGUI的使用教程
2022/06/16 Python