Matplotlib在使用子图时不会显示较小的滴答声

时间:2019-06-18 22:14:03

标签: python matplotlib plot subplot

我有几个子图,并且想通过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中可见但仅

该如何解决?

2 个答案:

答案 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))

enter image description here