Matplotlib放大矩形:绘制子图/外轴

时间:2017-04-27 16:03:12

标签: python matplotlib

有没有办法创建一个缩放矩形,用于绘制子图或轴外?当前的matplotlib导航缩放矩形允许您一次单击并拖动一个轴内的矩形,但我希望选项可以在任何鼠标所在的位置扩展虚线矩形。

1 个答案:

答案 0 :(得分:1)

这个想法可以是创建一个新轴,填充整个图形并使其透明。然后,您可以为该轴使用矩形选择器。

enter image description here

from matplotlib.widgets import RectangleSelector
import numpy as np
import matplotlib.pyplot as plt


fig, axes = plt.subplots(2,2)
for ax in axes.flat:
    ax.scatter(np.random.rand(7), np.random.rand(7), c=np.random.rand(7))

def select(eclick, erelease):
    x1, y1 = eclick.xdata, eclick.ydata
    x2, y2 = erelease.xdata, erelease.ydata
    pass

overax = fig.add_axes([0,0,1,1])
overax.patch.set_alpha(0)
overax.axis("off")

rs = RectangleSelector(overax, select,
                       drawtype='box', useblit=True,
                       button=[1, 3],
                       minspanx=5, minspany=5,
                       spancoords='pixels',
                       interactive=True)

plt.show()