matplotlib blit如何更改xaxis和yaxis

时间:2015-12-29 09:36:18

标签: python matplotlib wxpython blit

我使用wxpythonmatplotlib绘制一个数字。数据来自fpga,我必须在数据到来时刷新数字。在我的代码中,我使用matplotlib restore_region .blit方法绘制得更快,但有时我想更改xticks yticks和标签以查看图的细节,但我不知道如何。我得到了以下结果:

setlabel到整个规模: setlabel to  the whole scale

更改刻度和标签后: afer change the ticks and labels

以下是我设置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)

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

1 个答案:

答案 0 :(得分:0)

如何每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中,您可以查看当前数据缓冲区并相应地缩放轴。