我有一个库函数,它将数据绘制成包含多个子图的pyplot图。 我刚刚为所有子图添加了网格线,但它们覆盖了实际数据,但我希望它们在后台。 我已经尝试改变执行plotting和ax.plot()ax.grid()命令但没有影响的顺序。 有没有办法强制网格进入背景?
相关的红利问题:我也使用axhline来指定x = 0线,但它总是呈现网格颜色,即使它被指定为另一个......
def plot_the_things(fig=None):
# in case no figure is provided, make a new one,
# otherwise add to the existing one
plot_fig=fig if fig else plt.figure()
#[...some calculations of data ...]
plot_ax1 = plot_fig.add_subplot(3,3,1)
plot_ax1.axhline(y=0, ls='-', color='0.5')
plot_ax1.plot(self.diff_3[:,0],self.diff_3[:,1])
# [...setting labels, adapt axes limits in case the new data needs wider ones..]
plot_ax1.grid(b=True, which='major', axis='both', c='0.75', ls='-', linewidth=1)
# this is repeated in similar fashion for the other axes -- there are 9 of
# them, each plotting something different in a different axes
多次调用此函数。更准确地说:它实际上是课程的一部分。我有这个类的多个实例并调用所有这些实例,传入相同的图形对象。每个实例然后绘制自己的数据,工作正常,甚至axhline()
显示正确(在数据下方!)但是在我输入命令添加网格之后,它总是显示在数据之上并且覆盖了axhline,这很烦人。
......有什么方法可以解决这个问题吗?
(我认为我可以也许也应该将所有只需要运行一次的东西移到一个没有重复执行的地方,但现在时间和精力都很少,所以我采用了最快捷的方式工作......但我不希望这会改变任何事情)