MatplotLib 中的备用网格背景颜色

请看下面的图片:

http://img4.mukewang.com/64632ae50001f4ee11930409.jpg

创建左侧图表的代码是:


import matplotlib.pyplot as plt

import numpy as np


t = np.arange(0.0, 2.0, 0.01)

s = 1 + np.sin(2*np.pi*t)

plt.plot(t, s)

plt.grid(axis='y')

plt.savefig("test_transparent.png", transparent=True)

plt.show()

我怎样才能改变网格背景颜色来创建一个像右边的图表?


所以基本上我必须删除 X 轴并为水平行设置备用背景颜色。


我想在不设置 matplotlib 使用的 Y 轴步长(0、0.25、0.50 等)的情况下创建这些彩色区域。MatplotLib 会自动设置它们,对我来说没问题,我只需要交替颜色。


谢谢


幕布斯6054654
浏览 80回答 1
1回答

catspeake

您可以提取 yticks 列表并为它们创建水平跨度。import matplotlib.pyplot as pltimport numpy as npt = np.arange(0.0, 2.0, 0.01)s = 1 + np.sin(2 * np.pi * t)plt.plot(t, s)plt.grid(axis='y')yticks, _ = plt.yticks()for y0, y1 in zip(yticks[::2], yticks[1::2]):    plt.axhspan(y0, y1, color='black', alpha=0.1, zorder=0)plt.yticks(yticks)  # force the same yticks againplt.show()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python