MatplotLib中的备用网格背景颜色

问题描述

请看下面的图片:

MatplotLib

在左侧创建图表的代码为:

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轴并为水平行设置备用背景颜色。

我想在不设置Y轴步长(0、0.25、0.50等)的情况下创建这些有色区域,matplotlib正在使用。 MatplotLib自动设置它们,对我来说还可以,我只需要替换颜色即可。

谢谢

解决方法

您可以提取ytick列表并为其创建水平跨度。

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')
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 again
plt.show()

example plot

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...