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中as用法实例分析
Apr 30 Python
解读! Python在人工智能中的作用
Nov 14 Python
python机器学习之神经网络实现
Oct 13 Python
对json字符串与python字符串的不同之处详解
Dec 19 Python
Python饼状图的绘制实例
Jan 15 Python
Python+Appium实现自动化测试的使用步骤
Mar 24 Python
python plt可视化——打印特殊符号和制作图例代码
Apr 17 Python
如何在Windows中安装多个python解释器
Jun 16 Python
OpenCV灰度化之后图片为绿色的解决
Dec 01 Python
如何用python实现一个HTTP连接池
Jan 14 Python
Python爬虫入门案例之回车桌面壁纸网美女图片采集
Oct 16 Python
python画条形图的具体代码
Apr 20 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中ltrim与rtrim去除左右空格及特殊字符实例
2016/01/07 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
laravel项目利用twemproxy部署redis集群的完整步骤
2018/05/11 PHP
PHP实时统计中文字数和区别
2019/02/28 PHP
jQuery bind事件使用详解
2011/05/05 Javascript
jQuery数组处理方法汇总
2011/06/20 Javascript
利用JavaScript脚本实现滚屏效果的方法
2015/07/07 Javascript
jQuery添加和删除输入文本框标签代码
2016/05/20 Javascript
浅谈JS中json数据的处理
2016/06/30 Javascript
AngularJS入门教程之表单校验用法示例
2016/11/02 Javascript
AngularJS实现使用路由切换视图的方法
2017/01/24 Javascript
JS实现两周内自动登录功能
2017/03/23 Javascript
bootstrap confirmation按钮提示组件使用详解
2017/08/22 Javascript
React Native时间转换格式工具类分享
2017/10/24 Javascript
vue-cli2打包前和打包后的css前缀不一致的问题解决
2018/08/24 Javascript
快速解决vue在ios端下点击响应延时的问题
2018/08/27 Javascript
微信小程序实现tab左右切换效果
2020/11/15 Javascript
JavaScript一元正号运算符示例代码
2019/06/30 Javascript
JQuery Ajax如何实现注册检测用户名
2020/09/25 jQuery
python fabric实现远程操作和部署示例
2014/03/25 Python
实例Python处理XML文件的方法
2015/08/31 Python
使用Python的package机制如何简化utils包设计详解
2017/12/11 Python
Python语言描述连续子数组的最大和
2018/01/04 Python
对python中词典的values值的修改或新增KEY详解
2019/01/20 Python
使用selenium模拟登录解决滑块验证问题的实现
2019/05/10 Python
selenium+Chrome滑动验证码破解二(某某网站)
2019/12/17 Python
python zip,lambda,map函数代码实例
2020/04/04 Python
使用CSS3制作版头动画效果
2020/12/24 HTML / CSS
采购主管的岗位职责
2013/12/17 职场文书
2014年教师节寄语
2014/08/11 职场文书
2015年高校就业工作总结
2015/05/04 职场文书
人事部:年度述职报告范文
2019/07/12 职场文书
Nginx快速入门教程
2021/03/31 Servers
浅谈resultMap的用法及关联结果集映射
2021/06/30 Java/Android
Redis三种集群模式详解
2021/10/05 Redis
在虚拟机中安装windows server 2008的图文教程
2022/06/28 Servers