这是我的班级:
import matplotlib.pyplot as plt
import collections as col
import numpy as np
class Graph(object):
"""Single 2-D dynamic plot. The axes must be same length and
have both minimum and maximum possible values.
"""
def __init__(self, window, subplot_num, x_axis, y_axis):
ax = window.add_subplot(subplot_num)
self.y, = ax.plot(x_axis, # Obtain handle to y axis.
y_axis,
marker='^'
)
self.y_data = col.deque(y_axis, # Circular buffer.
maxlen=len(y_axis)
)
# Make plot prettier
plt.grid(True)
plt.tight_layout()
def add_datapoint(self, y):
self.y_data.appendleft(y) # Remember - circular buffer.
self.y.set_ydata(self.y_data)
我传递给x_axis range(60)
来设置静态水平轴。 y_axis正在获取range(10, 60)
以设置其范围。
从那时起,我会听stdin并每秒添加一个新点。
问题是,初始图表是阴险的:
我想删除初始对角线。我尝试使用NaN初始化y_axis并调用ax.set_yrange()
,但这并不能解决我选择的问题。我也试过不传递y值,但是mpl.plot想要相等长度的x和y轴。
如何删除初始对角线?我可以手动设置y范围,或者在新数据到达时动态调整图表大小。