シリアルポートから浮動小数点数をリアルタイムでプロットする必要があります。pyqtgraphを使ったpythonリアルタイムプロット
どのようにデータをプロットでしょう... X1、X2 X3 :これらの値は、データ・シーケンスは、このようなものであるので、「\ n」は文字でsepparatedていますか? Arduinoボードを使用しています。データレートは200サンプル/秒、PCはWindows7 64ビットで動作しています。 私はpyqtgraphライブラリを使うことをお勧めします。私はpyttgraphでPlotting.pyの例を使い始めましたが、私のニーズに合わせてこのコードをどのように適応させるかはわかりません(下記参照)。 ありがとうございます。
from pyqtgraph.Qt import QtGui, QtCore
import numpy as np
import pyqtgraph as pg
# Set graphical window, its title and size
win = pg.GraphicsWindow(title="Sample process")
win.resize(1000,600)
win.setWindowTitle('pyqtgraph example')
# Enable antialiasing for prettier plots
pg.setConfigOptions(antialias=True)
# Random data process
p6 = win.addPlot(title="Updating plot")
curve = p6.plot(pen='y')
data = np.random.normal(size=(10,1000)) # If the Gaussian distribution shape is, (m, n, k), then m * n * k samples are drawn.
# plot counter
ptr = 0
# Function for updating data display
def update():
global curve, data, ptr, p6
curve.setData(data[ptr%10])
if ptr == 0:
p6.enableAutoRange('xy', False) ## stop auto-scaling after the first data set is plotted
ptr += 1
# Update data display
timer = QtCore.QTimer()
timer.timeout.connect(update)
timer.start(50)
## Start Qt event loop unless running in interactive mode or using pyside.
if __name__ == '__main__':
import sys
if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
QtGui.QApplication.instance().exec_()
問題が十分に定義されていません。現在のコードは、 'data'という名前のオブジェクトに含まれる浮動小数点のリストをプロットします。それはあなたの仕事の一部ですが、Arduinoのデータストリームはどうですか?それはどのようにフォーマットされ、どのように数字に解析することを提案しますか?あなたがそれに対処するまで、誰もが言えることはほとんどありません。 –
私のarduinoボードは、 '\ n'文字の後に一連のfloat値を送信しています。 x1 x2 x3 ... これらの値をリアルタイムでプロットしたいと思います。どうすればいいですか? お時間をいただきありがとうございます。 – fmarengo
これは私がやることです:シリアルポート(PySerial)にアクセスするPythonパッケージを入手してください。それをインストールします。 COM10を正しいボーレートと他のポートパラメータで開くためのスクリプトを作成します。タイトなループで、Adruinoからデータを収集します。各文字列を浮動小数点数に変換し、コンソールに出力します。エラーがないことを確認してください。その作業を済ませて初めて、リアルタイムプロットの問題に取り組むべきです。そのデータ取得ループが機能するように助けが必要な場合は、ここに別の質問を投稿して、必要なヘルプを入手する必要があります。 –