如何在 Matplotlib 中将子图共享为辅助 Y 轴?
matplotlibserver side programmingprogramming更新于 2025/7/4 10:37:17
要在 Matplotlib 中将子图共享为辅助 Y 轴,我们可以执行以下步骤 −
为数据点创建 x 。
在当前图形中添加一个子图,其 nrows=2、ncols=1,位于 index=1 (ax0)
使用 twinx() 方法创建一个共享 X 轴但独立于 Y 轴 (ax1) 的坐标轴孪生。
在当前图形中添加一个子图,其 nrows=2、ncols=1,位于 index=2 (ax2)
使用 twinx() 方法,创建共享 X 轴但 Y 轴独立的坐标区 (ax3)。
使用 get_shared_y_axes() 方法,返回 Y 轴的共享坐标区 Grouper 对象的引用。
创建曲线 c1、c2、c3 和 c4,分别使用不同的颜色、x 和 y 数据点。
要将图例框移动到图形的左上角,请使用 legend 方法和 bbox_to_anchor
要显示图形,请使用 show() 方法。
示例
import numpy as np from matplotlib import pyplot as plt plt.rcParams["figure.figsize"] = [7.00, 3.50] plt.rcParams["figure.autolayout"] = True x = np.linspace(-2, 2, 10) ax0 = plt.subplot(211) ax1 = ax0.twinx() # 创建两个轴的孪生子,它们共享 x 轴,但 y 轴相互独立。 ax2 = plt.subplot(212) ax3 = ax2.twinx() # 创建两个轴的孪生子,它们共享 x 轴,但 y 轴相互独立。 ax1.get_shared_y_axes().join(ax1, ax3) c1, = ax0.plot(x, np.sin(x), c='red') c2, = ax1.plot(x, np.cos(x), c='blue') c3, = ax2.plot(x, np.tan(x), c='green') c4, = ax3.plot(x, np.exp(x), c='yellow') plt.legend([c1, c2, c3, c4], ["y=sin(x)", "y=cos(x)", "y=tan(x)", "y=exp(x)"], loc = "upper left", bbox_to_anchor=(.070, 2.25)) plt.show()
输出


