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查找函数f(x)=0根的解决方法
May 07 Python
Python编程实现双击更新所有已安装python模块的方法
Jun 05 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
Nov 11 Python
python按时间排序目录下的文件实现方法
Oct 17 Python
python opencv 二值化 计算白色像素点的实例
Jul 03 Python
Atom Python 配置Python3 解释器的方法
Aug 28 Python
Django Docker容器化部署之Django-Docker本地部署
Oct 09 Python
Python如何存储数据到json文件
Mar 09 Python
Python3.x+pyqtgraph实现数据可视化教程
Mar 14 Python
Python爬取阿拉丁统计信息过程图解
May 12 Python
pytorch 计算ConvTranspose1d输出特征大小方式
Jun 23 Python
Django Session和Cookie分别实现记住用户登录状态操作
Jul 02 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
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
2013/08/31 PHP
php单态设计模式(单例模式)实例
2014/11/18 PHP
php清除和销毁session的方法分析
2015/03/19 PHP
Redis构建分布式锁
2017/03/28 PHP
php使用imagecopymerge()函数创建半透明水印
2018/01/25 PHP
PHP+Ajax简单get验证操作示例
2019/03/02 PHP
JavaScript 通过模式匹配实现重载
2010/08/12 Javascript
jquery 圆形旋转图片滚动切换效果
2011/01/19 Javascript
JavaScript 高级篇之函数 (四)
2012/04/07 Javascript
idTabs基于JQuery的根据URL参数选择Tab插件
2012/04/11 Javascript
Javascript中的String对象详谈
2014/03/03 Javascript
javascript基于HTML5 canvas制作画箭头组件
2014/06/25 Javascript
深入浅析JS的数组遍历方法(推荐)
2016/06/15 Javascript
jQuery Dialog 取消右上角删除按钮事件
2016/09/07 Javascript
jQuery flip插件实现的翻牌效果示例【附demo源码下载】
2016/09/20 Javascript
微信小程序开发实战教程之手势解锁
2016/11/18 Javascript
Bootstrap Modal对话框如何在关闭时触发事件
2016/12/02 Javascript
canvas实现图像放大镜
2017/02/06 Javascript
AngularJS执行流程详解
2017/02/17 Javascript
Vue非父子组件通信详解
2017/06/12 Javascript
js脚本中执行java后台代码方法解析
2019/10/11 Javascript
vue打开子组件弹窗都刷新功能的实现
2020/09/21 Javascript
[03:03]2014DOTA2西雅图国际邀请赛 Alliance战队巡礼
2014/07/07 DOTA
python将xml xsl文件生成html文件存储示例讲解
2013/12/03 Python
使用python实现strcmp函数功能示例
2014/03/25 Python
Python中一行和多行import模块问题
2018/04/01 Python
python3 selenium 切换窗口的几种方法小结
2018/05/21 Python
python write无法写入文件的解决方法
2019/01/23 Python
详解python中的hashlib模块的使用
2019/04/22 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
2019/07/09 Python
Python格式化输出--%s,%d,%f的代码解析
2020/04/29 Python
标记环介质访问控制协议
2016/03/27 面试题
什么是lambda函数
2013/09/17 面试题
坚守艰苦奋斗精神坚决反对享乐主义整改措施
2014/09/17 职场文书
刚学完怎么用Python实现定时任务,转头就跑去撩妹!
2021/06/05 Python