如何通过所有子图添加阴影

时间:2015-06-18 09:17:09

标签: python matplotlib plot

我有一个关于在我的图中添加阴影的问题。我需要如下图所示着色所有子图,如何在Python中执行此操作? enter image description here

1 个答案:

答案 0 :(得分:1)

您可以在clip_on=False中设置Rectangle patch,使其超出轴边界。

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import numpy as np

fig,ax=plt.subplots(2,1)

x=np.linspace(0,np.pi*2,50)

ax[0].plot(x,np.sin(x),'b-')
ax[1].plot(x,np.sin(x),'b-')

rect=mpatches.Rectangle([0.35,0.1], 0.1, 0.8, 
         ec='k', fc='g', alpha=0.5, clip_on=False, transform=fig.transFigure)
ax[1].add_patch(rect)

fig.savefig('figure.png')

enter image description here

注意:在第一个轴上设置矩形会使它落后于第二个轴,除非您想手动更改两个轴的zorder。