【发布时间】:2016-11-05 19:46:42
【问题描述】:
我有一种情况,有时整个系列的数据都不可用。我正在实时绘制来自传感器的值,这些值可以通过用户交互打开和关闭,因此我不能确定这些值总是在一个系列中。用户可以启动传感器,然后将其关闭然后再次打开,但在这种情况下,matplotlib 从最后一个端点和新起点绘制一条线。
我绘制的数据如下:
[[ 5. 22.57011604]
[ 6. 22.57408142]
[ 7. 22.56350136]
[ 8. 22.56394005]
[ 9. 22.56790352]
[ 10. 22.56451225]
[ 11. 22.56481743]
[ 12. 22.55789757]
#Missing x vals. Still plots straight line..
[ 29. 22.55654716]
[ 29. 22.56066513]
[ 30. 22.56110382]
[ 31. 22.55050468]
[ 32. 22.56550789]
[ 33. 22.56213379]
[ 34. 22.5588932 ]
[ 35. 22.54829407]
[ 35. 22.56697655]
[ 36. 22.56005478]
[ 37. 22.5568161 ]
[ 38. 22.54621696]
[ 39. 22.55033493]
[ 40. 22.55079269]
[ 41. 22.55475616]
[ 41. 22.54783821]
[ 42. 22.55195618]]
我的绘图函数看起来很简单,如下所示:
def plot(self, data)
for name, xy_dict in data.iteritems():
x_vals = xy_dict['x_values']
y_vals = xy_dict['y_values']
line_to_plot = xy_dict['line_number']
self.lines[line_to_plot].set_xdata(x_vals)
self.lines[line_to_plot].set_ydata(y_vals)
有人知道为什么会这样吗?并且在绘图时我是否必须处理非序列 x 和 y 值?似乎 matplotlib 应该自己处理这个问题。否则我必须将列表拆分为更小的列表并绘制这些?
【问题讨论】:
标签: python matplotlib plot