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中的序列化存储的方法
Apr 28 Python
举例讲解Python中的死锁、可重入锁和互斥锁
Nov 05 Python
一个基于flask的web应用诞生 组织结构调整(7)
Apr 11 Python
python爬虫获取京东手机图片的图文教程
Dec 29 Python
python3.x上post发送json数据
Mar 04 Python
浅谈python3中input输入的使用
Aug 02 Python
Python测试模块doctest使用解析
Aug 10 Python
Python大数据之网络爬虫的post请求、get请求区别实例分析
Nov 16 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
Dec 10 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
Jun 17 Python
Python爬取微信小程序Charles实现过程图解
Sep 29 Python
Anaconda配置各版本Pytorch的实现
Aug 07 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 access 数据连接与读取保存编辑数据的实现代码
2010/05/12 PHP
PHP图片等比例缩放生成缩略图函数分享
2014/06/10 PHP
PHP下载远程图片并保存到本地方法总结
2016/01/22 PHP
php调用自己java程序的方法详解
2016/05/13 PHP
php观察者模式应用场景实例详解
2017/02/03 PHP
laravel-admin的图片删除实例
2019/09/30 PHP
Yii 框架使用Forms操作详解
2020/05/18 PHP
js中创建对象的几种方式示例介绍
2014/01/26 Javascript
JavaScript浮点数及运算精度调整详解
2016/10/21 Javascript
详解vuejs之v-for列表渲染
2017/06/22 Javascript
默认浏览器设置及vue自动打开页面的方法
2018/09/21 Javascript
浅析JS中NEW的实现原理及重写
2020/02/20 Javascript
Python判断某个用户对某个文件的权限
2016/10/13 Python
详解python里的命名规范
2018/07/16 Python
Python 获取主机ip与hostname的方法
2018/12/17 Python
代码详解django中数据库设置
2019/01/28 Python
python 消除 futureWarning问题的解决
2019/12/25 Python
python实现数学模型(插值、拟合和微分方程)
2020/11/13 Python
python使用正则表达式匹配txt特定字符串(有换行)
2020/12/09 Python
Html5移动端弹幕动画实现示例代码
2018/08/27 HTML / CSS
Nike英国官网:Nike.com (UK)
2017/02/13 全球购物
希尔顿酒店中国网站:Hilton中国
2017/03/11 全球购物
房地产销售员的自我评价分享
2013/12/04 职场文书
纪念建党演讲稿范文
2014/01/13 职场文书
装饰活动策划方案
2014/02/11 职场文书
阳光体育活动方案
2014/02/16 职场文书
cf收人广告词大全
2014/03/14 职场文书
教师对学生的寄语
2014/04/03 职场文书
小学教育见习报告
2014/10/31 职场文书
2014年大学教师工作总结
2014/12/02 职场文书
2014年党员发展工作总结
2014/12/02 职场文书
2015年医务人员医德医风自我评价
2015/03/03 职场文书
中学教师师德师风承诺书
2015/04/28 职场文书
2015上半年个人工作总结
2015/07/27 职场文书
python百行代码实现汉服圈图片爬取
2021/11/23 Python
关于MySQL中explain工具的使用
2023/05/08 MySQL