def plot(self,ch,point):
"""
Appends a point to the channel(curve) object ch.
Fills the scene and after it is full,
shifts the curve one step left, for each new point.
If its the first point it creates the plot.
"""
#Adjust the scene and frames vertically to folow data
if point[1] > self.scene.range[1]:
self.scene.center[1] = point[1]-9
self.grid.y = point[1]-9
self.ticklabels.y = point[1]-9
elif point[1] < -self.scene.range[1]:
self.scene.center[1] = point[1]+9
self.grid.y = point[1]+9
self.ticklabels.y = point[1]+9
#=========================================
if self.scene.kb.keys:#key trap
s = self.scene.kb.getkey() # obtain keyboard information
if s == 'g' or s == 'G':
self.toggleGrid()
# Scroll scene center right to follow data
if len(ch.x) > 0 and ch.x[-1] > 10:
# scroll center of the scene with x
new_x_center = (ch.x[0]+ch.x[-1])/2.
self.scene.center = (new_x_center,0,0)
self.updateTicks(ch.x,ch.y)
self.grid.x = new_x_center
self.ticklabels.x = new_x_center
# shift curve and append
ch.pos[:-1] = ch.pos[1:]
ch.pos[-1] = point
else:
ch.append(pos=point)
评论列表
文章目录