【问题标题】:How to access the info known by matplotlib.backends.backend_qt4agg.NavigationToolbar2QTAgg如何访问 matplotlib.backends.backend_qt4agg.NavigationToolbar2QTAgg 已知的信息
【发布时间】:2012-04-04 16:18:18
【问题描述】:

我有一个 PyQt4 应用程序,其中嵌入了 matplotlib 图形。

如您所见,我已将导航工具栏添加为小部件。我希望能够根据左侧图上显示的数据更新右侧的图。似乎最简单的方法是劫持“缩放”中包含的信息。或者至少知道何时发生缩放,以便我可以重新计算并在右侧重绘。任何人都有一个好的方法(从pick_event级别重新实现将是最后的手段)?

【问题讨论】:

    标签: python qt4 matplotlib


    【解决方案1】:

    我想出的最好方法是创建一个以 NavigationToolbar 作为父级的自定义导航工具栏。然后我只是在自定义版本中添加了一个信号并覆盖了 draw 方法。通过这种方式,我可以调用原始的 draw 方法并使用 NavigationToolbar 数据结构中所需的任何信息发出我的信号。

    class NavigationToolbarCustom(NavigationToolbar):
    zoom_changed = pyqtSignal(float, float, name='zoomChanged')
    def __init__(self, canvas, parent):
        NavigationToolbar.__init__(self, canvas, parent)
        #super(NavigationToolbarCustom, self).__init__(self, canvas, parent)
    def draw(self):
        super(NavigationToolbarCustom,self).draw()
        if self._xypress == None:
             home_view = self._views.home()
             Xmin,Xmax = home_view[0][0:2]
        else:
            lastx, lasty, a, ind, lim, trans = self._xypress[0]
            Xmin,Xmax=a.get_xlim()
        self.zoom_changed.emit(Xmin,Xmax)
    

    【讨论】:

      猜你喜欢
      • 2012-06-15
      • 1970-01-01
      • 2020-02-12
      • 2015-12-04
      • 2020-07-07
      • 1970-01-01
      • 1970-01-01
      • 2010-10-13
      • 2020-05-14
      相关资源
      最近更新 更多