我用 TKinter 制作了一个 GUI,可以从安捷伦示波器读取示波器轨迹。我希望在更改时间/格时更新 x 轴。要更新我使用的 x 和 y 数据set_xdata
和set_ydata
. 是否有类似的方法来更新 x 限制?
问问题
2882 次
2 回答
1
您需要了解一点对象层次结构。您正在调用set_xdata
一个Line2D
对象,该对象Artist
与一个Axes
对象相关联(它处理诸如对数与线性、x/y 限制、轴标签、刻度位置和标签之类的事情),该对象与一个Figure
对象相关联(将一个一堆轴对象,处理窗口管理器(用于 gui)等)和一个canvas
对象(实际上处理将所有其他对象转换为屏幕上的图片)。
如果您使用的是 Tkinter,我假设您有一个axes
对象(我将调用它ax
)。
ax = fig.subplot(111) # or where ever you want to get you `Axes` object from.
my_line = ax.plot(data_x, data_y)
# whole bunch of code
#
# more other code
# update your line object
my_line.set_xdata(new_x_data)
my_line.set_ydata(new_y_data)
# update the limits of the axes object that you line is drawn on.
ax.set_xlim([top, bottom])
ax.set_ylim([left, right])
所以要更新行中的数据,你需要更新my_line
,要更新轴限制,你需要更新ax
。
于 2013-01-25T06:00:10.287 回答
0
该pyplot.xlim()
函数更改 x 轴(当前轴)的范围。
Axes的set_xticks()
方法设置刻度。例如,可以使用 获得当前 Axes gca()
。
于 2013-01-25T02:26:00.113 回答