使用python读取传感器数据并通过画图实时动态展示数据变化
时间: 2024-09-21 09:03:59 浏览: 245
Python matplotlib 读取excel表格数据并画图保存
在Python中,你可以结合`matplotlib`或`plotly`等绘图库以及像`Pandas`这样的数据分析库来实时动态地显示传感器数据。这里是一个简单的例子,假设你已经通过某种方式(例如`bluetooth`, `serial`或其他通信库)获取到了数据,并将其存储在一个列表或`pandas.DataFrame`中。
```python
import pandas as pd
import matplotlib.pyplot as plt
import time
# 假设data_list是你从传感器获取的数据列表
data_list = []
def get_sensor_data():
# 实现从传感器获取数据的函数
# 这里只是模拟数据生成
new_data = some_function_to_get_data() # replace with your function
data_list.append(new_data)
return new_data
# 创建图表窗口
fig, ax = plt.subplots()
# 设置线图样式
line, = ax.plot([], [], 'r-', label='Sensor Data') # 红色实线
def animate(i):
if len(data_list) > 0:
x = [i] * len(data_list) # 时间轴
y = data_list # 数据点
line.set_xdata(x)
line.set_ydata(y)
ax.relim() # 更新范围
ax.autoscale_view(True, True, False) # 自动调整缩放
else:
pass # 没有数据时不绘制
return line,
ani = animation.FuncAnimation(fig, animate, frames=len(data_list), interval=500, blit=True)
try:
plt.show(block=False) # 显示动画,不会阻塞
while True:
new_data = get_sensor_data()
if new_data is not None: # 如果有新数据就更新
ani.event_source.trigger() # 触发更新
except KeyboardInterrupt:
ani.event_source.stop() # 关闭动画
```
在这个例子中,我们创建了一个动画,每次从传感器获取新数据时会更新数据点并在图形上实时显示。注意你需要替换`some_function_to_get_data()`为你实际从传感器获取数据的函数。
阅读全文