📅  最后修改于: 2023-12-03 15:32:51.669000             🧑  作者: Mango
在使用 Matplotlib 库绘制多个子图时,有时需要将它们的x轴共享,以便更好地比较不同的数据。通过使用面向对象方式创建子图,可以轻松地实现这一点。
在开始之前,需要先安装 Matplotlib 库:
!pip install matplotlib
首先,我们需要创建一个 Figure 对象,并使用该对象创建两个子图:
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(8, 6))
ax1 = fig.add_subplot(2, 1, 1)
ax2 = fig.add_subplot(2, 1, 2)
上面的代码创建了一个大小为8x6的 Figure
对象,然后在该对象上创建了两个子图,分别位于第一行和第二行。
我们想要将这两个子图的x轴共享,只需要调用第二个子图的 sharex()
方法,并将第一个子图作为参数传递给它即可。代码如下:
ax2.sharex(ax1)
完整的代码如下:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
fig = plt.figure(figsize=(8, 6))
ax1 = fig.add_subplot(2, 1, 1)
ax1.plot(x, y1, '-')
ax2 = fig.add_subplot(2, 1, 2)
ax2.plot(x, y2, '-')
ax2.sharex(ax1)
plt.show()
运行代码后,将得到以下输出:
可以看到,两个子图的x轴共享,这样我们就可以更好地比较它们的数据了。
在 Matplotlib 中,共享子图的x轴可以帮助我们更好地比较不同数据。通过调用 sharex()
方法,可以轻松实现共享x轴的子图。