Python 尽管调用了tick_参数并使用了NullLocator,matplotlib中仍保留了左记号标记

Python 尽管调用了tick_参数并使用了NullLocator,matplotlib中仍保留了左记号标记,python,python-3.x,matplotlib,Python,Python 3.x,Matplotlib,我一直在努力从matplotlib绘图中删除左记号,该绘图有两个子绘图共享x轴 如果我只从一个情节开始,事情就会像我预期的那样: X = np.linspace(0, 2 * np.pi, 100) Y = np.sin(X) Z = np.sin(2 * X) fig, ax1 = plt.subplots() ax1.set_ylim([-1.1, 1.1]) ax1.spines['top'].set_visible(False) ax1.spines['left'].set_vis

我一直在努力从matplotlib绘图中删除左记号,该绘图有两个子绘图共享x轴

如果我只从一个情节开始,事情就会像我预期的那样:

X = np.linspace(0, 2 * np.pi, 100)
Y = np.sin(X)
Z = np.sin(2 * X)

fig, ax1 = plt.subplots()

ax1.set_ylim([-1.1, 1.1])

ax1.spines['top'].set_visible(False)
ax1.spines['left'].set_visible(False)
ax1.spines['right'].set_visible(False)

ax1.tick_params(axis='both',
                which='both',
                bottom='off',
                top='off',
                left='off',
                right='off')

ax1.plot(X, Y, color='b')
收益率:

如果我尝试使用
.twinx()
创建另一个共享同一y轴的绘图,并使用我在
ax1
上使用的相同方法,则左勾号返回:

... continuing the block above...

ax2 = ax1.twinx()
ax2.spines['top'].set_visible(False)
ax2.spines['left'].set_visible(False)
ax2.spines['right'].set_visible(False)

ax2.tick_params(axis='both',
                which='both',
                bottom='off',
                top='off',
                left='off',
                right='off')

ax2.plot(X, Z, color='r')
收益率:

我可能遗漏了一些简单的东西,但我一直在阅读文档,玩代码,浏览其他帖子,但都没有用

任何帮助都将不胜感激


编辑:包括
ax2.yaxis.set\u major\u定位器(plt.NullLocator())
仍然无法去除左勾。

您是否尝试过这样定义图形和子图:

fig, axes = plt.subplots(nrows=2,ncols=1)
axes[1].set_yticklabels(axes[1].get_yticklabels(), visible=False)
当设置第二个图形的ytick标签时,如下所示:

fig, axes = plt.subplots(nrows=2,ncols=1)
axes[1].set_yticklabels(axes[1].get_yticklabels(), visible=False)

当我并排绘制两个共享相同x和y标签的图形时,这对我来说很有效。

因此,问题似乎在于命令的顺序

如果我将
.twinx()
调用移动到我进行格式化的位置上方,则记号会按照我的意愿消失:

X = np.linspace(0, 2 * np.pi, 100)
Y = np.sin(X)
Z = np.sin(2 * X)

fig, ax1 = plt.subplots()
ax1.set_ylim([-1.1, 1.1])
ax2 = ax1.twinx() # <--------------- Move it here

ax1.spines['top'].set_visible(False)
ax1.spines['left'].set_visible(False)
ax1.spines['right'].set_visible(False)

ax1.tick_params(axis='both',
                which='both',
                bottom='off',
                top='off',
                left='off',
                right='off')

ax1.plot(X, Y, color='b')

ax2.spines['top'].set_visible(False)
ax2.spines['left'].set_visible(False)
ax2.spines['right'].set_visible(False)

ax2.tick_params(axis='both',
                which='both',
                bottom='off',
                top='off',
                left='off',
                right='off')

ax2.plot(X, Z, color='r')
X=np.linspace(0,2*np.pi,100)
Y=np.sin(X)
Z=np.sin(2*X)
图,ax1=plt.子批次()
ax1.set_ylim([-1.1,1.1])

ax2=ax1.twinx()#您是否尝试过以下方法

plt.xticks([])
plt.yticks([])

我希望这些数字相互重叠,这就是为什么我要一次定义一个,并使用
.twinx()
(这可能不是最优雅的方法;我希望听到更好的方法)。我的问题是记号本身,而不是标签。标签的行为符合我的要求。然后试试图,axes=plt.subplot(nrows=1,ncols=2,sharex=True)。但我建议我应该去掉记号和标签。如果没有,我尝试了:)使用
sharex=True
kwarg仍然给了我并排的绘图。但是谢谢你的时间:)对不起,我可能把ncol和nrow输入弄混了。但是你可以玩这些。我想你想要的应该是ncol=1,nrow=2。