【问题标题】:matplotlib blit how to change xaxis and yaxismatplotlib blit 如何更改 xaxis 和 yaxis
【发布时间】:2016-04-03 04:12:33
【问题描述】:

我使用wxpythonmatplotlib 来绘制图形。数据来自fpga,数据来了我要刷新图。在我的代码中,我使用 matplotlib restore_region .blit 方法来更快地绘制,但有时我想更改 xticks yticks 和标签以查看图形的细节,但我不知道该怎么做。我刚刚得到以下结果:

将标签设置为整个比例:

更改刻度和标签后:

以下是我设置 xticks 和 yticks 的函数。

def setSpLabel(self, begin_X=70, end_X=5995,begin_Y=-120,end_Y=60): 
    self.ylabel('dBm')
    self.xlabel('MHz')
    self.ylim(begin_Y,end_Y)
    self.xlim(begin_X,end_X)
    yticks=linspace(begin_Y,end_Y,15)
    yticklabels = [str(int(i)) for i in yticks]  
    xticks=linspace(begin_X,end_X,15)

    xticklabels = [str(int(i)) for i in xticks]
    self.axes.set_xticks(xticks)
    self.axes.set_xticklabels(xticklabels,rotation=0)
    self.axes.set_yticks(yticks)
    self.axes.set_yticklabels(yticklabels,rotation=0)
    self.axes.grid(True)

    self.axes.get_xaxis().set_animated(True)
    self.axes.get_yaxis().set_animated(True)
    self.FigureCanvas.draw()
    self.axes.get_xaxis().set_animated(False)
    self.axes.get_yaxis().set_animated(False)

    self.axes.draw_artist(self.axes.get_xaxis())
    self.axes.draw_artist(self.axes.get_yaxis())
    self.FigureCanvas.blit(self.axes.bbox)
    self.background=self.FigureCanvas.copy_from_bbox(self.axes.bbox)

如何更改刻度 和标签,同时刷新绘图数据?

【问题讨论】:

    标签: python matplotlib wxpython blit


    【解决方案1】:

    每隔 1 秒左右调度一次自动缩放方法怎么样?您可以为此使用 wx.Timer。

    self.timer = wx.Timer(self)
    self.Bind(wx.EVT_TIMER, self.setSpLabel, self.timer)        
    self.timer.Start(1000) # every 1000 ms
    

    在 setSpLabel 中,您可以查看当前数据缓冲区并相应地缩放轴。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-29
      • 1970-01-01
      • 1970-01-01
      • 2013-11-19
      • 1970-01-01
      相关资源
      最近更新 更多