对齐y标签 这里显示了两种方法,一种是使用对 Figure.align_ylabels 的简短调用,另一种是使用手动方式来对齐标签。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 import numpy as npimport matplotlib.pyplot as pltdef make_plot (axs ): box = dict (facecolor='yellow' , pad=5 , alpha=0.2 ) np.random.seed(19680801 ) ax1 = axs[0 , 0 ] ax1.plot(2000 *np.random.rand(10 )) ax1.set_title('ylabels not aligned' ) ax1.set_ylabel('misaligned 1' , bbox=box) ax1.set_ylim(0 , 2000 ) ax3 = axs[1 , 0 ] ax3.set_ylabel('misaligned 2' , bbox=box) ax3.plot(np.random.rand(10 )) ax2 = axs[0 , 1 ] ax2.set_title('ylabels aligned' ) ax2.plot(2000 *np.random.rand(10 )) ax2.set_ylabel('aligned 1' , bbox=box) ax2.set_ylim(0 , 2000 ) ax4 = axs[1 , 1 ] ax4.plot(np.random.rand(10 )) ax4.set_ylabel('aligned 2' , bbox=box) fig, axs = plt.subplots(2 , 2 ) fig.subplots_adjust(left=0.2 , wspace=0.6 ) make_plot(axs) fig.align_ylabels(axs[:, 1 ]) plt.show()
另见 Figure.align_ylabels and Figure.align_labels for a direct method of doing the same thing. Also Aligning Labels
或者,我们可以使用y轴对象的set_label_coords方法手动在子图之间手动对齐轴标签。请注意,这需要我们知道硬编码的良好偏移值。
1 2 3 4 5 6 7 8 9 10 11 fig, axs = plt.subplots(2 , 2 ) fig.subplots_adjust(left=0.2 , wspace=0.6 ) make_plot(axs) labelx = -0.3 for j in range (2 ): axs[j, 1 ].yaxis.set_label_coords(labelx, 0.5 ) plt.show()
参考 此示例中显示了以下函数,方法,类和模块的使用:
1 2 3 4 5 6 7 8 import matplotlibmatplotlib.figure.Figure.align_ylabels matplotlib.axis.Axis.set_label_coords matplotlib.axes.Axes.plot matplotlib.pyplot.plot matplotlib.axes.Axes.set_title matplotlib.axes.Axes.set_ylabel matplotlib.axes.Axes.set_ylim
下载这个示例