这篇文章将为大家详细讲解有关怎么在python中利用matplotlib实现条件背景颜色,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言通俗易懂、容易入门、功能强大,在许多领域中都有广泛的应用,例如最热门的大数据分析,人工智能,Web开发等。
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中利用matplotlib实现条件背景颜色就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。