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 base64 decode incorrect padding错误解决方法
Jan 08 Python
python实现web方式logview的方法
Aug 10 Python
Python中正则表达式详解
May 17 Python
python导出chrome书签到markdown文件的实例代码
Dec 27 Python
python使用pil库实现图片合成实例代码
Jan 20 Python
python数字图像处理之骨架提取与分水岭算法
Apr 27 Python
Python学习笔记之字符串和字符串方法实例详解
Aug 22 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
Feb 11 Python
keras 模型参数,模型保存,中间结果输出操作
Jul 06 Python
python 利用百度API识别图片文字(多线程版)
Dec 14 Python
PyCharm+Miniconda3安装配置教程详解
Feb 16 Python
python playwright之元素定位示例详解
Jul 23 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实现文件下载(支持中文文名)
2013/12/04 PHP
PHP Warning: Module 'modulename' already loaded in问题解决办法
2015/03/16 PHP
php实现随机显示图片方法汇总
2015/05/21 PHP
PHP实现用户登录的案例代码
2018/05/10 PHP
laravel5.6实现数值转换
2019/10/23 PHP
JavaScript-世界上误解最深的语言分析
2007/08/12 Javascript
JavaScript 变量命名规则
2009/09/23 Javascript
JQery 渐变图片导航效果代码 漂亮
2010/01/01 Javascript
16个最流行的JavaScript框架[推荐]
2011/05/29 Javascript
使用Json比用string返回数据更友好,也更面向对象一些
2011/09/13 Javascript
localResizeIMG先压缩后使用ajax无刷新上传(移动端)
2015/08/11 Javascript
Bootstrap路径导航与分页学习使用
2017/02/08 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
2017/03/07 Javascript
基于jQuery的表单填充实例
2017/08/22 jQuery
Vue的移动端多图上传插件vue-easy-uploader的示例代码
2017/11/27 Javascript
去掉vue 中的代码规范检测两种方法(Eslint验证)
2018/03/21 Javascript
详解vue-element Tree树形控件填坑路
2019/03/26 Javascript
深入浅析Vue中mixin和extend的区别和使用场景
2019/08/01 Javascript
原生js实现的移动端可拖动进度条插件功能详解
2019/08/15 Javascript
浅谈vue 多个变量同时赋相同值互相影响
2020/08/05 Javascript
Vue项目打包部署到apache服务器的方法步骤
2021/02/01 Vue.js
学习python (2)
2006/10/31 Python
centos6.4下python3.6.1安装教程
2017/07/21 Python
Python3结合Dlib实现人脸识别和剪切
2018/01/24 Python
Flask框架响应、调度方法和蓝图操作实例分析
2018/07/24 Python
python使用zip将list转为json的方法
2018/12/31 Python
Python3数字求和的实例
2019/02/19 Python
Python新建项目自动添加介绍和utf-8编码的方法
2020/12/26 Python
电子邮箱格式怎么写
2014/01/12 职场文书
见习期自我鉴定
2014/01/31 职场文书
浪费资源的建议书
2014/03/12 职场文书
公证委托书模板
2014/04/03 职场文书
放飞梦想演讲稿800字
2014/08/26 职场文书
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis
Android Rxjava3 使用场景详解
2022/04/07 Java/Android
vue动态绑定style样式
2022/04/20 Vue.js