Matplotlib:在索引中的某个点之后更改线条的颜色

时间:2017-01-02 10:18:50

标签: python pandas matplotlib colors

我一直在探索Matplotlib和熊猫超过一个月,我想知道是否有任何方法可以在指数的某个值通过后改变给定图形线的颜色,我不能在Matplotlib文档中找不到任何类似的东西,并且非常感谢任何人的专业知识。

ax1 = plt.subplot2grid((1,1), (0,0))

num = 0
for i in df['GDP']:
    num +=1
    if num > 263:
        df.plot(color = 'r', ax=ax1)
    else:
        df.plot(color= 'r', ax=ax1)
plt.show()

我认为这样的事情会起作用,但幸运的是它没有。

注意:我正在使用GDP数据,这是我数据框中唯一的列,如果有人想知道:)

1 个答案:

答案 0 :(得分:2)

对于选择列GDP,您可以使用boolean indexing覆盖loc行,其中比较索引值(index必须增加单调,默认值):

np.random.seed(100)
df = pd.DataFrame(np.random.randint(10, size=(30,2)), columns=['GDP', 'A'])
#print (df)

N = 20
ax = df['GDP'].plot(color='y')
df.loc[df.index >= N, 'GDP'].plot(color='r', ax=ax)
plt.show()

graph