You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matplotlib绘制传感器数据时折线不显示仅散点正常的问题求助

解决Matplotlib绘制TE FX29传感器数据时折线不显示的问题

问题根源

你当前的代码在每次循环中调用plt.plot(t, LBS_DATA_SENSOR1, 'c-')时,仅绘制单个孤立数据点。折线图需要至少两个连续的点才能生成线段,而散点图(c.)只需单个点即可显示,因此出现散点正常、折线无显示的现象。

解决方案

维护存储历史数据的列表,每次循环追加新的时间和数据值,再基于完整数据集绘制折线。这样Matplotlib能将连续的点连接成线条。

修改后的代码

#TE FX29 load cell sensor
#set up digital io
import matplotlib.pyplot as plt
import RPi.GPIO as IO          
IO.setwarnings(False)           
IO.setmode (IO.BCM)         
IO.setup(19,IO.OUT)           
#set up i2c
import time
import smbus
from time import sleep
bus = smbus.SMBus(1) 
channel = 1          
# 初始化存储历史数据的列表
t_list = []
lbs_list = []
plt.figure()
#Condition sensor for continuous measurements
LOAD_SENSOR_ADDRESS=0x28
dummy_command=0x00
offset=1000
LOAD_SENSOR_DATA=bus.read_byte(LOAD_SENSOR_ADDRESS)
running_max = 0
t = 0
#take continuous measurements and report
while 1:
    bus.write_byte(LOAD_SENSOR_ADDRESS,dummy_command)                                             
    LOAD_SENSOR_DATA=bus.read_i2c_block_data(LOAD_SENSOR_ADDRESS,dummy_command,2)      
    LBS_DATA_SENSOR1=((LOAD_SENSOR_DATA[0]&63)*2**8 + LOAD_SENSOR_DATA[1] - offset)*100/14000                                                                              
    if LBS_DATA_SENSOR1 > running_max:
        running_max = LBS_DATA_SENSOR1
    # 将新数据追加到列表
    t_list.append(t)
    lbs_list.append(LBS_DATA_SENSOR1)
    # 基于完整数据集绘制折线
    plt.clf()  # 清除当前绘图,避免重叠
    plt.plot(t_list, lbs_list, 'c-')
    plt.xlim(0, t+1)
    plt.ylim(0, running_max + 10)
    plt.pause(0.01)
    t += .01

关键说明

  1. 数据持久化:用t_list和lbs_list存储所有采集到的时间和压力数据,确保每次绘制都有连续的点集
  2. 清除旧绘图:使用plt.clf()清除上一次的绘图,避免线条重叠
  3. 性能优化(可选):如果循环次数较多,可改用Line2D对象的set_data方法更新数据,减少重复绘图的开销:
# 初始化时创建线条对象
line, = plt.plot([], [], 'c-')
# 循环内更新数据
line.set_data(t_list, lbs_list)
plt.xlim(0, t+1)
plt.ylim(0, running_max + 10)
plt.pause(0.01)

内容的提问来源于stack exchange,提问作者Peter Keller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 19:10:06