我有几个子图,并且想通过ax.tick_params来调整轴刻度设置。一切正常,但是,未显示次要对勾。这是一个代码示例
import matplotlib.pyplot as plt
x = np.linspace(0,1,100)
y = x*x
f, (ax1,ax2) = plt.subplots(2, 1)
ax1.tick_params(axis="both", direction="in", which="both", right=False, top=True)
ax2.tick_params(axis="both", direction="in", which="both", right=True, top=False)
ax1.plot(x,y)
ax2.plot(x,-y)
plt.show()
我认为哪一个都可以给我带来一点点滴答声。但是我需要添加一个额外的
plt.minorticks_on()
这使得它们在ax2中可见但仅。
该如何解决?
答案 0 :(得分:1)
使用pyplot的危险是,您无法跟踪当前轴是plt.minorticks_on()
之类的命令所作用的轴。因此,使用要使用的轴的相应方法将是有益的:
ax1.minorticks_on()
ax2.minorticks_on()
答案 1 :(得分:1)
plt
将在当前轴上工作,在您的情况下为ax2
。一种方法是先按照您的方式启用它们,然后使用AutoMinorLocator
ax1.tick_params(axis="both", direction="in", which="both", right=False, top=True)
ax2.tick_params(axis="both", direction="in", which="both", right=True, top=False)
ax1.plot(x,y)
ax2.plot(x,-y)
for ax in [ax1, ax2]:
ax.xaxis.set_minor_locator(AutoMinorLocator(4))
ax.yaxis.set_minor_locator(AutoMinorLocator(4))