我正在用Matplotlib绘制两个子图,基本上如下:
subplot(211); imshow(a); scatter(..., ...) subplot(212); imshow(b); scatter(..., ...)
我可以在这两个子图之间画线吗?我该怎么办?
在许多情况下,其他答案的解决方案不是最优的(因为它们只有在计算出点数后未对图进行任何更改的情况下才会起作用)。
更好的解决方案将使用特别设计的ConnectionPatch:
ConnectionPatch
import matplotlib.pyplot as plt from matplotlib.patches import ConnectionPatch import numpy as np fig = plt.figure(figsize=(10,5)) ax1 = fig.add_subplot(121) ax2 = fig.add_subplot(122) x,y = np.random.rand(100),np.random.rand(100) ax1.plot(x,y,'ko') ax2.plot(x,y,'ko') i = 10 xy = (x[i],y[i]) con = ConnectionPatch(xyA=xy, xyB=xy, coordsA="data", coordsB="data", axesA=ax2, axesB=ax1, color="red") ax2.add_artist(con) ax1.plot(x[i],y[i],'ro',markersize=10) ax2.plot(x[i],y[i],'ro',markersize=10) plt.show()