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脚本来获取Cisco设备信息的示例
May 04 Python
Python找出list中最常出现元素的方法
Jun 14 Python
利用aardio给python编写图形界面
Aug 21 Python
python+opencv识别图片中的圆形
Mar 25 Python
numpy判断数值类型、过滤出数值型数据的方法
Jun 09 Python
对Python中for复合语句的使用示例讲解
Nov 01 Python
python 字典操作提取key,value的方法
Jun 26 Python
Python Pandas 获取列匹配特定值的行的索引问题
Jul 01 Python
python使用Matplotlib改变坐标轴的默认位置
Oct 18 Python
python银行系统实现源码
Oct 25 Python
tensorflow之并行读入数据详解
Feb 05 Python
python检查目录文件权限并修改目录文件权限的操作
Mar 11 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
2019十大人气国漫
2020/03/13 国漫
PHP编程函数安全篇
2013/01/08 PHP
PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
2013/04/08 PHP
ThinkPHP实现多数据库连接的解决方法
2014/07/01 PHP
PHP实现批量删除(封装)
2017/04/28 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
Yii2.0实现的批量更新及批量插入功能示例
2019/01/29 PHP
动手学习无线电
2021/03/10 无线电
深入理解JavaScript系列(4) 立即调用的函数表达式
2012/01/15 Javascript
javascript 三种方法实现获得和设置以及移除元素属性
2013/03/20 Javascript
Jquery封装tab自动切换效果的具体实现
2013/07/13 Javascript
删除select中所有option选项jquery代码
2013/08/12 Javascript
从数据库读取数据后将其输出成html标签的三种方法
2014/10/13 Javascript
深入理解JavaScript系列(37):设计模式之享元模式详解
2015/03/04 Javascript
jquery动态增加删减表格行特效
2015/11/20 Javascript
jQuery基于$.ajax设置移动端click超时处理方法
2016/05/14 Javascript
一个超简单的jQuery回调函数例子(分享)
2016/08/08 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
Nodejs--post的公式详解
2017/04/29 NodeJs
深入浅出理解JavaScript闭包的功能与用法
2018/08/01 Javascript
如何在Vue.js中实现标签页组件详解
2019/01/02 Javascript
Python 使用folium绘制leaflet地图的实现方法
2019/07/05 Python
python实现函数极小值
2019/07/10 Python
使用python3批量下载rbsp数据的示例代码
2019/12/20 Python
python使用Geany编辑器配置方法
2020/02/21 Python
2020最新pycharm汉化安装(python工程狮亲测有效)
2020/04/26 Python
Python类及获取对象属性方法解析
2020/06/15 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
英国领先的高级美容和在线皮肤诊所:Face the Future
2020/06/17 全球购物
主要的Ajax框架都有什么
2013/11/14 面试题
初三家长会邀请函
2014/01/18 职场文书
2015年教师节感恩寄语
2015/03/23 职场文书
芙蓉镇观后感
2015/06/10 职场文书
2016暑期社会实践新闻稿
2015/11/25 职场文书
关于Javascript闭包与应用的详解
2021/04/22 Javascript
利用正则表达式匹配浮点型数据
2022/05/30 Java/Android