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中cPickle用法例子分享
Jan 03 Python
Python实现的监测服务器硬盘使用率脚本分享
Nov 07 Python
python pandas dataframe 按列或者按行合并的方法
Apr 12 Python
python获取时间及时间格式转换问题实例代码详解
Dec 06 Python
python根据txt文本批量创建文件夹
Dec 08 Python
python将excel转换为csv的代码方法总结
Jul 03 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
Jul 12 Python
Django的性能优化实现解析
Jul 30 Python
python KNN算法实现鸢尾花数据集分类
Oct 24 Python
python3 sorted 如何实现自定义排序标准
Mar 12 Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
Oct 12 Python
python中子类与父类的关系基础知识点
Feb 02 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字符串 ==比较运算符的副作用
2009/10/21 PHP
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
2013/05/10 PHP
关于URL最大长度限制的相关资料查证
2014/12/23 PHP
php读取flash文件高宽帧数背景颜色的方法
2015/01/06 PHP
php操作xml入门之xml标签的属性分析
2015/01/23 PHP
php+mysql实现的二级联动菜单效果详解
2016/05/10 PHP
PHP实现批量检测网站是否能够正常打开的方法
2016/08/23 PHP
PHP magento后台无法登录问题解决方法
2016/11/24 PHP
accesskey 提交
2006/06/26 Javascript
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
2009/05/21 Javascript
Extjs TriggerField在弹出窗口显示不出问题的解决方法
2010/01/08 Javascript
jQuery的Ajax时无响应数据的解决方法
2010/05/25 Javascript
Jquery操作radio的简单实例
2014/01/06 Javascript
angularjs在ng-repeat中使用ng-model遇到的问题
2016/01/21 Javascript
基于bootstrap-datetimepicker.js不支持IE8的快速解决方法
2016/11/07 Javascript
easyui combotree加载静态数据问题(选不上)解决方法
2016/12/26 Javascript
Vue中添加过渡效果的方法
2017/03/16 Javascript
使用jquery+iframe做一个ajax上传效果(实例)
2017/08/24 jQuery
详解性能更优越的小程序图片懒加载方式
2018/07/18 Javascript
基于node简单实现RSA加解密的方法步骤
2019/03/21 Javascript
react MPA 多页配置详解
2019/10/18 Javascript
[01:18:45]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第三场2月1日
2021/03/11 DOTA
在Python的Django框架中生成CSV文件的方法
2015/07/22 Python
Python 功能和特点(新手必学)
2015/12/30 Python
python利用正则表达式排除集合中字符的功能示例
2017/10/10 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
2020/04/10 Python
Python数据正态性检验实现过程
2020/04/18 Python
Keras Convolution1D与Convolution2D区别说明
2020/05/22 Python
深入浅析pycharm中 Make available to all projects的含义
2020/09/15 Python
浅谈Python __init__.py的作用
2020/10/28 Python
详解python定时简单爬取网页新闻存入数据库并发送邮件
2020/11/27 Python
房屋转让协议书
2014/04/11 职场文书
生日宴会策划方案
2014/06/03 职场文书
党员领导干部民主生活会批评与自我批评发言
2014/09/28 职场文书
2015清明节祭奠英烈寄语大全
2015/03/04 职场文书
Python测试框架pytest高阶用法全面详解
2022/06/01 Python