在 Matplotlib 中绘制两个图之间的线条
matplotlibserver side programmingprogramming
要在 matplotlib 中绘制两个图之间的线条,我们可以采取以下步骤 −
创建一个新图形或激活一个现有图形。
将两个轴(ax1 和 ax2)添加到图形中作为子图排列的一部分。
使用 numpy 创建随机数据 x 和 y。
在两个轴(ax1 和 ax2)上绘制 x 和 y 数据点,其中 color=red 和 marker=diamond。
初始化两个变量 i 和 j 以获取轴上的不同数据点子图。
制作 xy 和 mn 元组,用于在子图上添加补丁的位置。
添加连接两个点(可能在不同的轴上)con1 和 con2 的补丁。
为 con1 和 con2 添加艺术家。
在 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()