可以帮我写一个接收串口数据的同时可以将数据写入excel表,同时又可以实时绘制数据折线图的python代码吗?
时间: 2024-03-13 09:43:03 浏览: 76
Python读取Excel表格,并同时画折线图和柱状图的方法
5星 · 资源好评率100%
当然可以,以下是一个示例代码,你可以根据自己的需求进行修改:
```python
import serial
import time
import openpyxl
from openpyxl import Workbook
from openpyxl.chart import LineChart, Reference, Series
# 打开串口
ser = serial.Serial('COM3', 9600, timeout=1)
# 创建Excel表格
wb = Workbook()
ws = wb.active
ws.append(['Time', 'Data'])
# 创建折线图
chart = LineChart()
chart.title = 'Serial Data'
chart.x_axis.title = 'Time'
chart.y_axis.title = 'Data'
data = Reference(ws, min_col=2, min_row=1, max_row=10)
series = Series(data, title='Data')
chart.append(series)
ws.add_chart(chart, 'C1')
# 读取串口数据
while True:
data = ser.readline().decode().strip()
if data:
# 写入Excel表格
row = [time.strftime('%Y-%m-%d %H:%M:%S'), data]
ws.append(row)
wb.save('data.xlsx')
# 更新折线图
if ws.max_row > 10:
chart_data = Reference(ws, min_col=2, min_row=ws.max_row-9, max_row=ws.max_row)
series.values = chart_data
wb.save('data.xlsx')
```
这个代码会不断读取串口数据,并将数据写入Excel表格中。同时,它会实时绘制最新的10个数据点的折线图。在代码运行时,你需要将串口连接到电脑上,并根据实际情况修改串口号和波特率。你还需要安装 `pyserial` 和 `openpyxl` 库。
请注意,这只是一个示例代码,实际使用时可能需要进行更多的修改和优化。
阅读全文