2015-12-29 94 views
1

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

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) 

如何变更蜱 和标签,并在同一时间刷新图表数据?

回答

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