2

我正在尝试开发一个遥测系统,它从 Arduino 发送传感器数据,实时绘制。为此,我使用 Python 和 matplotlib 库。我的问题是,每次新数据点到达时,我想通过将其绘制到与其他数据点相同的图形中来添加该数据点。到目前为止,我找不到解决方案。

4

2 回答 2

1

您可以使用 Plotly 中的 Arduino API 将数据从 Arduino 流式传输到 Plotly 图形中。您有两个选择:连续传输数据(听起来您会想要这样做),或传输单个数据块。

如果您刷新页面,它将每隔几秒钟更新一次图表。

Arduino API 可在此处获得。而且,如果您已经在使用 Python,则可以使用该extend选项将数据更新到另一个绘图中。Python API 在这里

这是从 Arduino 传输的示例,您可以在此处查看交互式版本

在此处输入图像描述

全面披露:我在 Plotly 工作。

于 2013-11-06T02:47:58.570 回答
-1

据我所知,你有几种不同的方法来做到这一点(我会在我认为增加难度的地方列出它们

  1. 制作位图文件,例如 .png,每次新数据点到达时都必须重新生成该文件。为此,您需要将旧数据存储在文件或数据库中的某个位置。
  2. 在浏览器中使用 svg。然后您可以使用 javascript 添加点或线(例如http://sickel.net/blogg/?p=1506
  3. 制作位图,存储并编辑它以添加新点 - 如果您想要在一端“滚动旧点”,或者在更多数据到达时重新缩放图像,这真的会变得很棘手。
  4. 制作一系列位图,并将总图作为许多切片的组合。- 在这里你可以轻松地“滚掉”旧积分,但如果你想重新调整比例,你就不走运了。
于 2013-04-23T12:39:17.497 回答