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安装第三方库及常见问题处理方法汇总
Sep 13 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
May 24 Python
python 使用re.search()筛选后 选取部分结果的方法
Nov 28 Python
详解Python正则表达式re模块
Mar 19 Python
Python使用scrapy爬取阳光热线问政平台过程解析
Aug 14 Python
在Django中实现添加user到group并查看
Nov 18 Python
Python将列表中的元素转化为数字并排序的示例
Dec 25 Python
python图形开发GUI库pyqt5的基本使用方法详解
Feb 14 Python
在TensorFlow中实现矩阵维度扩展
May 22 Python
python如何写个俄罗斯方块
Nov 06 Python
python爬虫搭配起Bilibili唧唧的流程分析
Dec 01 Python
学点简单的Django之第一个Django程序的实现
Feb 24 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编实现程动态图像的创建代码
2008/09/28 PHP
APACHE的AcceptPathInfo指令使用介绍
2013/01/18 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
Laravel 中获取上一篇和下一篇数据
2015/07/27 PHP
YII Framework框架教程之安全方案详解
2016/03/14 PHP
PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】
2019/02/25 PHP
JavaScript脚本语言在网页中的简单应用
2007/05/13 Javascript
js tab效果的实现代码
2009/12/26 Javascript
jQuery调用AJAX时Get和post公用的乱码解决方法实例说明
2013/06/04 Javascript
javascript函数作用域学习示例(js作用域)
2014/01/13 Javascript
设置点击文本框或图片弹出日历控件的实现代码
2016/05/12 Javascript
详解微信小程序 页面跳转 传递参数
2016/12/08 Javascript
javascript html5轻松实现拖动功能
2017/03/01 Javascript
jQuery Chosen通用初始化
2017/03/07 Javascript
bootstrap日期控件问题(双日期、清空等问题解决)
2017/04/19 Javascript
浅谈angularjs依赖服务注入写法的注意点
2017/04/24 Javascript
Vue axios全局拦截 get请求、post请求、配置请求的实例代码
2018/11/28 Javascript
ES6知识点整理之对象解构赋值应用示例
2019/04/17 Javascript
Vue按时间段查询数据组件使用详解
2020/08/21 Javascript
python学习笔记之列表(list)与元组(tuple)详解
2017/11/23 Python
如何使用Python进行OCR识别图片中的文字
2019/04/01 Python
Python 的字典(Dict)是如何存储的
2019/07/05 Python
Python K最近邻从原理到实现的方法
2019/08/15 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
2019/10/24 Python
python 两个一样的字符串用==结果为false问题的解决
2020/03/12 Python
Python直接赋值及深浅拷贝原理详解
2020/09/05 Python
python3访问字典里的值实例方法
2020/11/18 Python
Europcar美国/加拿大:预订汽车或卡车租赁服务
2018/11/13 全球购物
香奈儿美国官网:CHANEL美国
2020/05/20 全球购物
Java里面Pass by value和Pass by Reference是什么意思
2016/05/02 面试题
先进班集体申报材料
2014/12/26 职场文书
2015年学校教务处工作总结
2015/05/11 职场文书
《老人与海鸥》教学反思
2016/02/16 职场文书
logback如何自定义日志存储
2021/08/30 Java/Android
nginx共享内存的机制详解
2022/03/21 Servers
Python自动化工具之实现Excel转Markdown表格
2022/04/08 Python