在Matplotlib中的两个图之间画线

发布于 2021-01-29 14:10:31

我正在用Matplotlib绘制两个子图,基本上如下:

subplot(211); imshow(a); scatter(..., ...)
subplot(212); imshow(b); scatter(..., ...)

我可以在这两个子图之间画线吗?我该怎么办?

关注者
0
被浏览
101
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    在许多情况下,其他答案的解决方案不是最优的(因为它们只有在计算出点数后未对图进行任何更改的情况下才会起作用)。

    更好的解决方案将使用特别设计的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()
    

    在此处输入图片说明



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看