在 Matplotlib 中绘制两幅图之间的线条
要绘制 matplotlib 中两幅图之间的线条,我们可以按以下步骤操作:
创建一副新图像或激活一副现有的图像。
作为子图布置的一部分,向图像中加入两个轴(ax1 和 ax2)。
使用 numpy 创建随机数据 x 和 y。
在 ax1 和 ax2 两个轴上绘制 x 和 y 数据点,颜色为红色,标记为菱形。
初始化两个变量 i 和 j,以获取子图上的不同数据点。
制作 xy 和 mn 元组作为位置,用于在子图上添加补丁。
添加一个补丁,将两个点(可能在不同的轴中)con1 和 con2 连接起来。
为 con1 和 con2 添加 artist。
在 ax1 和 ax2 上绘制数据点 (x[i], y[i]) 和 (x[j], y[j]) 之间的直线,以连接这些补丁。
要显示图像,请使用 show() 方法。
示例
import matplotlib.pyplot as plt from matplotlib.patches import ConnectionPatch import numpy as np plt.rcParams["figure.figsize"] = [7.00, 3.50] plt.rcParams["figure.autolayout"] = True fig = plt.figure() ax1 = fig.add_subplot(121) ax2 = fig.add_subplot(122) x, y = np.random.rand(100), np.random.rand(100) ax1.plot(x, y, 'd', c='r') ax2.plot(x, y, 'd', c='r') i = 10 xy = (x[i], y[i]) con1 = ConnectionPatch(xyA=xy, xyB=xy, coordsA="data", coordsB="data", axesA=ax2, axesB=ax1, color="blue") j = 12 mn = (x[j], y[j]) con2 = ConnectionPatch(xyA=mn, xyB=mn, coordsA="data", coordsB="data", axesA=ax2, axesB=ax1, color="blue") ax2.add_artist(con1) ax2.add_artist(con2) ax1.plot(x[i], y[i], 'bo', markersize=10) ax2.plot(x[i], y[i], 'bo', markersize=10) ax1.plot(x[j], y[j], 'bo', markersize=10) ax2.plot(x[j], y[j], 'bo', markersize=10) plt.show()
输出
广告