python中matplotlib条件背景颜色的实现

 更新时间:2019年09月02日 11:27:22   投稿:daisy  
这篇文章主要给大家介绍了关于python中matplotlib条件背景颜色的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

如何根据图表中没有的变量更改折线图的背景颜色?例如,如果我有以下数据帧:

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使用smtplib模块发送电子邮件的流程详解

    Python使用smtplib模块发送电子邮件的流程详解

    Python中自带的smtplib模块可以进行基于SMTP协议的邮件操作,这里我们便总结了Python使用smtplib模块发送电子邮件的流程详解,并对一些常见的问题给出了解决方法:
    2016-06-06
  • Python随机生成一个6位的验证码代码分享

    Python随机生成一个6位的验证码代码分享

    这篇文章主要介绍了Python随机生成一个6位的验证码代码分享,本文直接给出代码实例,需要的朋友可以参考下
    2015-03-03
  • django加载本地html的方法

    django加载本地html的方法

    今天小编就为大家分享一篇django加载本地html的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • python实现文件分片上传的接口自动化

    python实现文件分片上传的接口自动化

    这篇文章主要为大家详细介绍了python实现文件分片上传的接口自动化,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • Python使用multiprocessing实现多进程

    Python使用multiprocessing实现多进程

    当我们工作中涉及到处理大量数据、并行计算或并发任务时,Python的multiprocessing模块是一个强大而实用的工具,在本文中,我们将探索如何使用multiprocessing模块实现多进程编程,将介绍进程池的概念和用法,需要的朋友可以参考下
    2024-10-10
  • 在Python中使用poplib模块收取邮件的教程

    在Python中使用poplib模块收取邮件的教程

    这篇文章主要介绍了在Python中使用poplib模块收取邮件的教程,代码基于Python2.x版本,需要的朋友可以参考下
    2015-04-04
  • Python多版本开发环境管理工具介绍

    Python多版本开发环境管理工具介绍

    这篇文章主要介绍了Python多版本开发环境管理工具介绍的相关资料,在Python开发中,有些情况下,我们可能面临在一台机器上同时安装多版本Python的需求,需要的朋友可以参考下
    2019-07-07
  • python删除某个目录文件夹的方法

    python删除某个目录文件夹的方法

    在本篇文章里小编给大家分享的是关于python删除某个目录文件夹的方法,有兴趣的朋友们可以学习下。
    2020-05-05
  • Pytorch固定随机数种子的方法小结

    Pytorch固定随机数种子的方法小结

    在对神经网络模型进行训练时,有时候会存在对训练过程进行复现的需求,然而,每次运行时 Pytorch、Numpy 中的随机性将使得该目的变得困难重重,基于此,本文记录了 Pytorch 中的固定随机数种子的方法,需要的朋友可以参考下
    2023-12-12
  • python print无法打印\r的问题及解决

    python print无法打印\r的问题及解决

    这篇文章主要介绍了python print无法打印\r的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08

最新评论