相关疑难解决方法(0)

具有可拖动点的可拖动线

我需要在一个figureCanvas中有2个可拖动的点.但是我有一个辅助约束:2个点必须用一条线连接起来.当我拖动一个点时,当然(否则不会有趣),必须动态绘制线,并且仍然链接到2个点.

例

我设法创建了2个可拖动的点,主题是: Matplotlib以交互方式拖动重叠点

我通过FigureCanvas的子类修改了一些代码来使用它(稍后在PyQt应用程序中包含图形):

import matplotlib.pyplot as plt
import matplotlib.patches as patches


class DraggablePoint:

    # https://stackoverflow.com/questions/21654008/matplotlib-drag-overlapping-points-interactively

    lock = None #  only one can be animated at a time

    def __init__(self, parent, x=0.1, y=0.1):

        self.parent = parent
        self.point = patches.Ellipse((x, y), 0.01, 0.03, fc='r', alpha=0.5)
        self.x = x
        self.y = y
        parent.fig.axes[0].add_patch(self.point)
        self.press = None
        self.background = None
        self.connect()


    def connect(self):

        'connect to all the events we need'

        self.cidpress = self.point.figure.canvas.mpl_connect('button_press_event', self.on_press)
        self.cidrelease = self.point.figure.canvas.mpl_connect('button_release_event', self.on_release)
        self.cidmotion = self.point.figure.canvas.mpl_connect('motion_notify_event', self.on_motion)


    def …
Run Code Online (Sandbox Code Playgroud)

python pyqt matplotlib

7
推荐指数
2
解决办法
8189
查看次数

标签 统计

matplotlib ×1

pyqt ×1

python ×1