matplotlib 绘制线以连接子地物之间的点

2w2cym1i  于 2023-03-09  发布在  其他
关注(0)|答案(1)|浏览(145)

使用matplotlib新的subfigure-不是子情节-而是子图特性。我想在两个子图之间画一条线。从我的实验来看,我不相信连接补丁(适用于子情节)能做到这一点。有人知道这是否可能吗?

7y4bm7vi

7y4bm7vi1#

ConnectionPatch可以很好地处理子图形,但正如@JodyKlymak所指出的,应该通过set_in_layout(False)将面片从布局计算中删除。
下面是连接第一个子图的ax1a上的(4,8)和第二个子图的ax2上的(2,5)的示例:

import matplotlib.pyplot as plt
from matplotlib.patches import ConnectionPatch

fig = plt.figure(layout='constrained')
sf1, sf2 = fig.subfigures(1, 2, wspace=0.07)

ax1a, ax1b = sf1.subplots(2, 1)
ax1a.scatter(4, 8)
ax1b.scatter(10, 15)

ax2 = sf2.subplots()
ax2.scatter(2, 5)

conn = ConnectionPatch(
    xyA=(4, 8), coordsA='data', axesA=ax1a,
    xyB=(2, 5), coordsB='data', axesB=ax2,
    color='red',
)
ax2.add_artist(conn)
conn.set_in_layout(False) # remove from layout calculations

plt.show()

相关问题