问题描述
我试图绘制许多子图,每个子图使用辅助轴孪生子显示2个y数据集。但是,我只想在外部位置显示yticks标签。对于原始数据,可以使用label_outer()轻松完成此操作,但是我不知道如何为辅助轴执行此操作。
import numpy as np
import matplotlib.pyplot as plt
x=np.arange(0,5,step=1)
y1=np.sin(x)
y2=10*np.cos(x)
fig,axs = plt.subplots(4,3,figsize=(7.2,9.7),dpi=300,sharex='col',sharey='row',gridspec_kw={'hspace': 0.2,'wspace': 0.2})
for n,k in enumerate(np.arange(1,13,step=1)):
ax2 = axs.flat[n].twinx()
axs.flat[n].plot(x,y1,c='black')
ax2.plot(x,y2,c='deepskyblue')
axs.flat[n].set_xlabel('Frequency (Hz)',fontsize=9)
for ax in axs.flat:
ax.label_outer()
plt.tight_layout()
plt.show()
如您所见,正确的勾号标签遍布整个图,我希望它们仅位于边缘,但不确定如何实现。 谢谢
解决方法
您可以做这样的事情
window.scrollTo(0,0);
,
因此,答案是只需添加ax2.set_yticklabels([])即可删除次要的yticks标签。