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实现备份文件实例
Sep 16 Python
Python设计模式编程中Adapter适配器模式的使用实例
Mar 02 Python
Python数字图像处理之霍夫线变换实现详解
Jan 12 Python
python之从文件读取数据到list的实例讲解
Apr 19 Python
用Python将mysql数据导出成json的方法
Aug 21 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
May 07 Python
Python学习笔记之Django创建第一个数据库模型的方法
Aug 07 Python
Python selenium的基本使用方法分析
Dec 21 Python
Python range与enumerate函数区别解析
Feb 28 Python
python下载的库包存放路径
Jul 27 Python
python自动提取文本中的时间(包含中文日期)
Aug 31 Python
Python 中random 库的详细使用
Jun 03 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 stripos()函数及注意事项的分析
2013/06/08 PHP
Thinkphp中Create方法深入探究
2014/06/16 PHP
De facto standard 世界上不可思议的事实标准
2010/08/29 Javascript
ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
2012/02/03 Javascript
GRID拖拽行的实例代码
2013/07/18 Javascript
使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
2014/06/05 Javascript
简单分析javascript面向对象与原型
2015/05/21 Javascript
jQuery实现带渐显效果的人物多级关系图代码
2015/10/16 Javascript
jQuery实现网页顶部固定导航效果代码
2015/12/24 Javascript
vue短信验证性能优化如何写入localstorage中
2018/04/25 Javascript
redux.js详解及基本使用
2019/05/24 Javascript
Node.js安装详细步骤教程(Windows版)详解
2019/09/01 Javascript
如何解决vue在ios微信"复制链接"功能问题
2020/03/26 Javascript
Vue 3.0中jsx语法的使用
2020/11/13 Javascript
[01:36:17]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第一场 1月31日
2021/03/11 DOTA
新手该如何学python怎么学好python?
2008/10/07 Python
python getopt 参数处理小示例
2009/06/09 Python
使用Python下的XSLT API进行web开发的简单教程
2015/04/15 Python
python实现对一个完整url进行分割的方法
2015/04/29 Python
CentOS中使用virtualenv搭建python3环境
2015/06/08 Python
python与C互相调用的方法详解
2017/07/14 Python
Python单例模式的两种实现方法
2017/08/14 Python
python 平衡二叉树实现代码示例
2018/07/07 Python
Python实现的排列组合、破解密码算法示例
2019/04/12 Python
numpy中的ndarray方法和属性详解
2019/05/27 Python
Python While循环语句实例演示及原理解析
2020/01/03 Python
Lookfantastic香港官网:英国知名美妆购物网站
2018/06/19 全球购物
全球在线商店:BerryLook
2019/04/14 全球购物
求职自荐信怎么写
2014/03/06 职场文书
幼儿教师师德承诺书
2014/05/23 职场文书
《中国梦我的梦》大学生演讲稿
2014/08/20 职场文书
2014年教研工作总结
2014/12/06 职场文书
环保建议书作文400字
2015/09/14 职场文书
2016年暑期见闻作文
2015/11/25 职场文书
导游词之山西-五老峰
2019/10/07 职场文书
Python pandas读取CSV文件的注意事项(适合新手)
2021/06/20 Python