带有阴影区域的折线图

时间:2018-11-16 20:14:03

标签: python

我尝试制作一个带有阴影区域的折线图以指示异常(在这种情况下为衰退)。 rate是折线图的变量。我创建了一个虚拟变量normal,以指示它是否正常。我希望条形图在normal = 1的每个周期都是灰色的,类似于this chart

到目前为止,这是我的代码。它与我想要的完全不同。我想知道是否有人可以帮助我。

df = pd.DataFrame({
 'rate' : [90,40,30,30,30,25,25,20,15,10],
 'group' : [1,2,3,4,5,6,7,8,9,10],
 'normal' : [1,0,0,0,0,1,0,1,0,0]})

ax = df[['group','rate']].plot()
df[['group','normal']].plot(kind = 'bar',secondary_y = True, ax = ax)
plt.show() 

1 个答案:

答案 0 :(得分:1)

IIUC,根据链接的问题,您可以在group处找到normal == 1值,然后使用ax.vline在每个点上画一条粗线。例如:

ax = df.set_index('group')['rate'].plot()
x = df.loc[df.normal == 1, 'group']
for i in x:
    ax.axvline(i, color='gray', alpha = 0.5, linewidth=30)

plt.show() 

enter image description here