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多线程和队列操作实例
Jun 21 Python
利用标准库fractions模块让Python支持分数类型的方法详解
Aug 11 Python
Python实现返回数组中第i小元素的方法示例
Dec 04 Python
Python实现矩阵相乘的三种方法小结
Jul 26 Python
python实现括号匹配的思路详解
Aug 23 Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
Aug 09 Python
python集合常见运算案例解析
Oct 17 Python
Python 取numpy数组的某几行某几列方法
Oct 24 Python
Python Numpy 控制台完全输出ndarray的实现
Feb 19 Python
Python SMTP配置参数并发送邮件
Jun 16 Python
查看keras的默认backend实现方式
Jun 19 Python
如何在VSCode下使用Jupyter的教程详解
Jul 13 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执行速度全攻略
2006/10/09 PHP
php中动态调用函数的方法
2015/03/16 PHP
php无序树实现方法
2015/07/28 PHP
必须收藏的23个php实用代码片段
2016/02/02 PHP
PHP简单判断手机设备的方法
2016/08/23 PHP
cnblogs中在闪存中屏蔽某人的实现代码
2010/11/14 Javascript
jQery使网页在显示器上居中显示适用于任何分辨率
2014/06/09 Javascript
javascript结合CSS实现苹果开关按钮特效
2015/04/07 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
Js与Jq获取浏览器和对象值的方法
2016/03/18 Javascript
jQuery实现可拖拽的许愿墙效果【附demo源码下载】
2016/09/14 Javascript
AngularJS自定义服务与fliter的混合使用
2016/11/24 Javascript
jquery.Callbacks的实现详解
2016/11/30 Javascript
如何使用bootstrap框架 bootstrap入门必看!
2017/04/13 Javascript
基于angular实现模拟微信小程序swiper组件
2017/06/11 Javascript
React props和state属性的具体使用方法
2018/04/12 Javascript
layui 实现自动选择radio单选框(checked)的方法
2019/09/03 Javascript
JavaScript实现PC端横向轮播图
2020/02/07 Javascript
js实现抽奖的两种方法
2020/03/19 Javascript
javascript设计模式 ? 装饰模式原理与应用实例分析
2020/04/14 Javascript
[08:47]DOTA2每周TOP10 精彩击杀集锦vol.6
2014/06/25 DOTA
[01:02:06]LGD vs Mineski Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
[44:22]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第一场 11.01
2020/11/02 DOTA
Python 找出出现次数超过数组长度一半的元素实例
2020/05/11 Python
CSS中几个与换行有关的属性简明总结
2014/04/15 HTML / CSS
css3针对移动端卡顿问题的解决(动画性能优化)
2020/02/14 HTML / CSS
马来西亚航空官方网站:Malaysia Airlines
2017/07/28 全球购物
DNA基因检测和分析:23andMe
2019/05/01 全球购物
如何打印出当前源文件的文件名以及源文件的当前行号
2015/04/05 面试题
建筑学推荐信
2013/11/03 职场文书
小学生学习感言
2014/03/10 职场文书
推荐信格式要求
2014/05/09 职场文书
校优秀毕业生主要事迹
2014/05/26 职场文书
企业仓管员岗位职责
2014/06/15 职场文书
寒山寺导游词
2015/02/03 职场文书
python APScheduler执行定时任务介绍
2022/04/19 Python