如何在pyplot图的特定区域设置背景颜色?

blz*_*blz 29 matplotlib

我已设法使用以下代码绘制一系列点:

plt = pp.figure()
for i in range(spt.shape[1]):
    spktrain = spt[0,i]
    for trial in spktrain:
        non_z = np.nonzero(trial)
        non_z = non_z[0]
        pp.plot(t[non_z], trial[non_z], 'bo')
Run Code Online (Sandbox Code Playgroud)

我想在图上放置交替的白色和灰色背景带,以便将数据与外部for循环的每次迭代分开.换句话说,我希望每个"spktrain"的数据都有自己的背景颜色(数据不重叠).

如何更改特定区域中图形的背景颜色?

tom*_*m10 70

你可以使用axhspan和/或axvspan喜欢这个:

import matplotlib.pyplot as plt

plt.figure()
plt.xlim(0, 5)
plt.ylim(0, 5)

for i in range(0, 5):
    plt.axhspan(i, i+.2, facecolor='0.2', alpha=0.5)
    plt.axvspan(i, i+.5, facecolor='b', alpha=0.5)

plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 您还可以使用 `zorder` 将这些矩形设置为在您的实际绘图后面绘制。例如:`plt.axhspan(i, i+.2, facecolor='0.2', alpha=0.5, zorder=-100)` (4认同)