Python 如何将外部设备输出绘制成图形?

Python 如何将外部设备输出绘制成图形?,python,matplotlib,phidgets,Python,Matplotlib,Phidgets,我有一个连接到Python的Phidgets差压传感器设备,并使用模板代码输出压力。我让它工作,它将压力值输出到控制台。然而,我正在寻找输出值的图表,并绘制一个与时间的线性图。有人知道怎么做吗?我已经附加了我正在使用的代码 from Phidget22.Phidget import * from Phidget22.Devices.VoltageRatioInput import * import time def onSensorChange(self, sensorValue, senso

我有一个连接到Python的Phidgets差压传感器设备,并使用模板代码输出压力。我让它工作,它将压力值输出到控制台。然而,我正在寻找输出值的图表,并绘制一个与时间的线性图。有人知道怎么做吗?我已经附加了我正在使用的代码

from Phidget22.Phidget import *
from Phidget22.Devices.VoltageRatioInput import *
import time

def onSensorChange(self, sensorValue, sensorUnit):
    print("SensorValue: " + str(sensorValue))

def main():
    voltageRatioInput4 = VoltageRatioInput()

    voltageRatioInput4.setChannel(4)

    voltageRatioInput4.setOnSensorChangeHandler(onSensorChange)

    voltageRatioInput4.openWaitForAttachment(5000)

    voltageRatioInput4.setSensorType(VoltageRatioSensorType.SENSOR_TYPE_1139)

    try:
        input("Press Enter to Stop\n")
    except (Exception, KeyboardInterrupt):
        pass

    voltageRatioInput4.close()

main()
它正在输出传感器值

传感器值:0.223

这就是我想要的。然而,它并没有将它保存到某种形式的变量中,这样我就可以根据时间绘制它。任何获取值的尝试都会导致

NameError:未定义名称“sensorValue”

有人知道如何将sensorValue中的值输入数组变量吗?


当我有MATLAB作业时,总是躲在stackoverflow周围。我又回到这里需要帮助做Python作业了,呵呵。感谢您的帮助

您应该使用一些变量来保存历史记录。由于在函数内部创建的变量只存在于函数内部,所以可以使用全局变量从外部创建变量

...

history = []

def onSensorChange(self, sensorValue, sensorUnit):
    global history
    history.append( sensorValue )
    print("SensorValue: " + str(sensorValue))
    print("History of values: ", history)

...

查看调用onSensorChange函数时历史记录是如何变化的。

虽然这段代码可能提供了一个问题的解决方案,但最好添加上下文说明它为什么/如何工作。这可以帮助未来的用户学习,并将这些知识应用到他们自己的代码中。在解释代码时,您也可能会收到来自用户的正面反馈,形式为UPVOUTS。谢谢!看起来学习“全局”和“附加”是关键功能。我想在这里提出一些建议,但由于我没有一个“完整”的答案(带有代码),我将坚持评论。将此问题分解为两个脚本:1)记录数据,2)将数据导入打印系统。对于第一个脚本,您可以根据自己的情况编写或聚合每单位时间(分钟)。一旦您这样做了,您就可以使用一些不同的通用python代码来读取文件并绘制数据。将这些域分开将使代码更清晰,维护更容易。