如何将两个现有的 Matplotlib 图合并为一个图?
matplotlibpythondata visualization
要将两个现有的 matplotlib 图合并为一个图,我们可以采取以下步骤 −
- 设置图形大小并调整子图之间和周围的填充。
- 使用 numpy 创建 x、y1 和 y2 数据点。
- 使用 plot() 方法绘制 (x, y1) 和 (x, y2) 点。
- 获取当前轴的 xy 数据点。
- 使用 argsort() 返回对数组进行排序的索引。
- 附加每个图的 x 和 y 数据点。
- 在第二个索引子图处绘制 X 和 Y 数据点。
- 要显示图形,请使用show() 方法。
示例
import numpy as np import matplotlib.pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True x = np.linspace(-10, 10, 100) y1 = np.sin(x) y2 = np.cos(x) plt.subplot(211) plt.plot(x, y1, color='red', lw=5) plt.plot(x, y2, color='orange', lw=7) X, Y = [], [] for lines in plt.gca().get_lines(): for x, y in lines.get_xydata(): X.append(x) Y.append(y) idx = np.argsort(X) X = np.array(X)[idx] Y = np.array(Y)[idx] plt.subplot(212) plt.plot(X, Y, color='green', lw=0.75) plt.show()