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中from module import * 的一个坑
Jul 20 Python
详解Python3.6的py文件打包生成exe
Jul 13 Python
python实现三维拟合的方法
Dec 29 Python
Python中的异常处理try/except/finally/raise用法分析
Feb 28 Python
python 实现手机自动拨打电话的方法(通话压力测试)
Aug 08 Python
python pillow模块使用方法详解
Aug 30 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
Jan 18 Python
Anconda环境下Vscode安装Python的方法详解
Mar 29 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
Jun 02 Python
怎么快速自学python
Jun 22 Python
python爬虫请求头设置代码
Jul 28 Python
Pycharm 如何设置HTML文件自动补全代码或标签
May 21 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
咖啡知识 除了喝咖啡还有那些知识点
2021/03/06 新手入门
php session实现多级目录存放实现代码
2016/02/03 PHP
PHP Imagick完美实现图片裁切、生成缩略图、添加水印
2016/02/22 PHP
ASP 过滤数组重复数据函数(加强版)
2010/05/31 Javascript
23个Javascript弹出窗口特效整理
2011/02/25 Javascript
js实现页面转发功能示例代码
2013/08/05 Javascript
jQuery prev ~ siblings选择器使用介绍
2013/08/09 Javascript
JS中的log对象获取以及debug的写法介绍
2014/03/03 Javascript
jQuery实现字符串按指定长度加入特定内容的方法
2015/03/11 Javascript
js判断上传文件后缀名是否合法
2016/01/28 Javascript
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
Angularjs material 实现搜索框功能
2016/03/08 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
2016/06/06 Javascript
jQuery插件实现文件上传功能(支持拖拽)
2020/08/27 Javascript
jquery与ajax获取特殊字符实例详解
2017/01/08 Javascript
JavaScrip数组删除特定元素的几种方法总结
2017/09/06 Javascript
浅谈JavaScript作用域和闭包
2017/09/18 Javascript
vue.js动画中的js钩子函数的实现
2018/07/06 Javascript
详解Eslint 配置及规则说明
2018/09/10 Javascript
微信小程序中显示倒计时代码实例
2019/05/09 Javascript
layui输入框只允许输入中文且判断长度的例子
2019/09/18 Javascript
[30:51]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第一局
2016/03/04 DOTA
从零学python系列之数据处理编程实例(二)
2014/05/22 Python
简单了解django缓存方式及配置
2019/07/19 Python
python不使用for计算两组、多个矩形两两间的iou方式
2020/01/18 Python
英国领先的NHS批准的在线药店:Pharmacy2U
2017/01/06 全球购物
英国现代家具和装饰网站:PN Home
2018/08/16 全球购物
加利福尼亚州威尼斯的女性奢侈品设计师服装和概念店:Mona Moore
2018/09/13 全球购物
家长评语大全
2014/01/22 职场文书
喝酒检查书范文
2014/02/23 职场文书
财务内勤岗位职责
2014/04/17 职场文书
学习党的群众路线对照检查材料
2014/09/29 职场文书
2014年英语教研组工作总结
2014/12/06 职场文书
人代会简报
2015/07/21 职场文书
《曾国藩家书》读后感——读家书,立家风
2019/08/21 职场文书
2020年元旦祝福语录,总有适合你的
2019/12/31 职场文书