python中matplotlib条件背景颜色的实现


Posted in Python onSeptember 02, 2019

如何根据图表中没有的变量更改折线图的背景颜色?例如,如果我有以下数据帧:

import numpy as np
import pandas as pd

dates = pd.date_range('20000101', periods=800)
df = pd.DataFrame(index=dates)
df['A'] = np.cumsum(np.random.randn(800)) 
df['B'] = np.random.randint(-1,2,size=800)

如果我做df.A的折线图,如何根据该时间点'B'列的值更改背景颜色?

例如,如果在该日期B = 1,则该日期的背景为绿色。

如果B = 0,则该日期的背景应为黄色。

如果B = -1那么背景那个日期应该是红色的。

添加我最初考虑使用axvline的解决方法,但@jakevdp回答正是看起来因为不需要for循环:首先需要添加一个'i'列作为计数器,然后整个代码看起来像:

dates = pd.date_range('20000101', periods=800)
df = pd.DataFrame(index=dates)
df['A'] = np.cumsum(np.random.randn(800)) 
df['B'] = np.random.randint(-1,2,size=800)
df['i'] = range(1,801)

# getting the row where those values are true wit the 'i' value
zeros = df[df['B']== 0]['i'] 
pos_1 = df[df['B']==1]['i']
neg_1 = df[df['B']==-1]['i']

ax = df.A.plot()

for x in zeros:
 ax.axvline(df.index[x], color='y',linewidth=5,alpha=0.03)
for x in pos_1:
  ax.axvline(df.index[x], color='g',linewidth=5,alpha=0.03)
for x in neg_1:
  ax.axvline(df.index[x], color='r',linewidth=5,alpha=0.03)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python判断字符串是否包含子字符串的方法
Mar 24 Python
python实现逻辑回归的方法示例
May 02 Python
python找出完数的方法
Nov 12 Python
PyQt5 实现字体大小自适应分辨率的方法
Jun 18 Python
python pandas cumsum求累计次数的用法
Jul 29 Python
Pandas DataFrame中的tuple元素遍历的实现
Oct 23 Python
Python逐行读取文件内容的方法总结
Feb 14 Python
Python GUI库PyQt5样式QSS子控件介绍
Feb 25 Python
解决python 执行sql语句时所传参数含有单引号的问题
Jun 06 Python
Python实现曲线拟合的最小二乘法
Feb 19 Python
pytorch中的torch.nn.Conv2d()函数图文详解
Feb 28 Python
方法汇总:Python 安装第三方库常用
Apr 26 Python
Python3批量移动指定文件到指定文件夹方法示例
Sep 02 #Python
Python流程控制 if else实现解析
Sep 02 #Python
Python 变量的创建过程详解
Sep 02 #Python
python脚本之一键移动自定格式文件方法实例
Sep 02 #Python
Python中zip()函数的简单用法举例
Sep 02 #Python
Python在OpenCV里实现极坐标变换功能
Sep 02 #Python
Python 读取用户指令和格式化打印实现解析
Sep 02 #Python
You might like
PHP引用(&)各种使用方法实例详解
2014/03/20 PHP
ThinkPHP安装和设置
2015/07/27 PHP
php的RSA加密解密算法原理与用法分析
2020/01/23 PHP
JavaScript中清空数组的三种方法分享
2011/04/07 Javascript
js 获取input点选按钮的值的方法
2014/04/14 Javascript
基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
2014/09/26 NodeJs
JS运动基础框架实例分析
2015/03/03 Javascript
js实现浮动在网页右侧的简洁QQ在线客服代码
2015/09/04 Javascript
Web前端开发之水印、图片验证码
2016/11/27 Javascript
jQuery排序插件tableSorter使用方法
2017/02/10 Javascript
Bootstrap输入框组件使用详解
2017/06/09 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
2017/06/22 Javascript
解决vue2.0动态绑定图片src属性值初始化时报错的问题
2018/03/14 Javascript
基于Vue 实现一个中规中矩loading组件
2019/04/03 Javascript
vue数据初始化initState的实例详解
2019/04/11 Javascript
用python代码做configure文件
2014/07/20 Python
Python素数检测的方法
2015/05/11 Python
python+opencv实现的简单人脸识别代码示例
2017/11/14 Python
python TKinter获取文本框内容的方法
2018/10/11 Python
Python3 实现文件批量重命名示例代码
2019/06/03 Python
Python 二叉树的层序建立与三种遍历实现详解
2019/07/29 Python
pandas的排序和排名的具体使用
2019/07/31 Python
使用turtle绘制五角星、分形树
2019/10/06 Python
Pandas时间序列基础详解(转换,索引,切片)
2020/02/26 Python
python中使用you-get库批量在线下载bilibili视频的教程
2020/03/10 Python
纯CSS绘制漂亮的圆形图案效果
2014/05/07 HTML / CSS
HTML5 常用语法一览(列举不支持的属性)
2010/01/26 HTML / CSS
h5移动端调用支付宝、微信支付的实现
2020/06/08 HTML / CSS
粉红色的鲸鱼:Vineyard Vines
2018/02/17 全球购物
总务岗位职责
2013/11/19 职场文书
打架检讨书100字
2014/01/19 职场文书
十八届三中全会学习方案
2014/02/16 职场文书
教师党员岗位承诺书
2014/05/29 职场文书
庆七一活动简报
2015/07/20 职场文书
springboot中一些比较常用的注解总结
2021/06/11 Java/Android
各种货币符号快捷输入
2022/02/17 杂记