我使用wxpython
和matplotlib
绘制一个数字。数据来自fpga,我必须在数据到来时刷新数字。在我的代码中,我使用matplotlib restore_region .blit方法绘制得更快,但有时我想更改xticks yticks和标签以查看图的细节,但我不知道如何。我得到了以下结果:
setlabel到整个规模:
更改刻度和标签后:
以下是我设置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 :(得分: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中,您可以查看当前数据缓冲区并相应地缩放轴。