用于许多子图中twinx的label_outer

问题描述

我试图绘制许多子图,每个子图使用辅助轴孪生子显示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()

b

如您所见,正确的勾号标签遍布整个图,我希望它们仅位于边缘,但不确定如何实现。 谢谢

解决方法

您可以做这样的事情

window.scrollTo(0,0);
,

因此,答案是只需添加ax2.set_yticklabels([])即可删除次要的yticks标签。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...