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中list列表的高级函数
May 17 Python
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
Jan 12 Python
深入理解python中函数传递参数是值传递还是引用传递
Nov 07 Python
django连接mysql配置方法总结(推荐)
Aug 18 Python
Python网络爬虫之爬取微博热搜
Apr 18 Python
解决python3 requests headers参数不能有中文的问题
Aug 21 Python
详解python中docx库的安装过程
Nov 08 Python
python 字典访问的三种方法小结
Dec 05 Python
python多线程实现代码(模拟银行服务操作流程)
Jan 13 Python
浅谈tensorflow模型保存为pb的各种姿势
May 25 Python
用python发送微信消息
Dec 21 Python
如何用python识别滑块验证码中的缺口
Apr 01 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通用分页类page.php[仿google分页]
2008/08/31 PHP
PHP信号量基本用法实例详解
2016/02/12 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
深入理解JavaScript系列(8) S.O.L.I.D五大原则之里氏替换原则LSP
2012/01/15 Javascript
jQuery表单验证插件formValidator(改进版)
2012/02/03 Javascript
jQuery链式操作如何实现以及为什么要用链式操作
2013/01/17 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
2014/04/10 Javascript
javascript+HTML5的Canvas实现Lab单车动画效果
2015/08/07 Javascript
js实现Select列表内容自动滚动效果代码
2015/08/20 Javascript
JS常用字符串方法(推荐)
2021/01/15 Javascript
关于Jquery中的事件绑定总结
2016/10/26 Javascript
老生常谈ES6中的类
2017/07/31 Javascript
JS数组求和的常用方法实例小结
2019/01/07 Javascript
配置eslint规范项目代码风格
2019/03/11 Javascript
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
[52:37]完美世界DOTA2联赛循环赛 Forest vs DM BO2第一场 10.29
2020/10/29 DOTA
Python实现的监测服务器硬盘使用率脚本分享
2014/11/07 Python
python中requests模块的使用方法
2015/04/08 Python
Python3中编码与解码之Unicode与bytes的讲解
2019/02/28 Python
python实现支付宝转账接口
2019/05/07 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
详解Python 调用C# dll库最简方法
2019/06/20 Python
Django认证系统实现的web页面实现代码
2019/08/12 Python
一行Python代码制作动态二维码的实现
2019/09/09 Python
Python函数参数分类原理详解
2020/05/28 Python
使用Tensorflow-GPU禁用GPU设置(CPU与GPU速度对比)
2020/06/30 Python
python单元测试框架pytest的使用示例
2020/10/07 Python
西班牙英格列斯百货法国官网:El Corte Inglés法国
2017/07/09 全球购物
如何用Java实现列出某个目录下的所有子目录
2015/07/20 面试题
幼儿园秋游活动方案
2014/01/21 职场文书
企业宣传方案
2014/03/04 职场文书
护士演讲稿优秀范文
2014/04/30 职场文书
2014年工作总结及2015工作计划
2014/12/12 职场文书
运动会开幕式通讯稿
2015/07/18 职场文书
logback如何自定义日志存储
2021/08/30 Java/Android
Java8 CompletableFuture 异步回调
2022/04/28 Java/Android