私のBokehストリーミングプロットは空白の矩形です。リアルタイムで更新されない単純なラインプロットを作成することができます。 私はBokehのバージョンのBokehドキュメントを読んでいます。私は0.12.10とPython3.5.3を使用しています。私は、エラーメッセージの解決策をオンラインで広範に調査しました。Bokehストリーミングプロットが空白
私はエラー私は、センサからのデータを取得するためにpyserialを使用しています
Error thrown from periodic callback: ValueError('All streaming column updates must be the same length')
を取得しています。値の例は、温度が73.40、時間が12:30:42です。このデータをリアルタイムでプロットしたいと思います。
import serial
from bokeh.io import curdoc
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure, output_file, show
ser = serial.Serial('/dev/ttyACM0', 9600)
source = ColumnDataSource(dict(time=[], sensor=[]))
p = figure(plot_height=400, plot_width=1200, title="Fahrenheit Plotting")
p.title.text = "Fahrenheit Plotter"
p.title.text_color = "blue"
p.title.text_font = "arial"
p.title.text_font_style = "bold"
p.yaxis.minor_tick_line_color = "yellow"
p.xaxis.axis_label = "Time"
p.yaxis.axis_label = "Fahrenheit"
p.line(x='time', y='sensor',line_width=3,color="blue",alpha=0.8,source=source)
def update():
while True:
arduinoString = ser.readline()
data_array = str(arduinoString).split(',')
time = data_array[1]
sensor1 = data_array[2]
print(sensor)
print(time)
new_data = dict(time=[], sensor1=[])
new_data['time'] = data_array[1]
new_data['sensor'] = data_array[2]
source.stream(new_data, 20)
curdoc().add_root(p)
curdoc().add_periodic_callback(update, 100)
curdoc().title = "Device Temperatures"
ありがとうございます。私は、温度ストリングとセンサーストリングを同じように「00072:94」「12:55:33」のように作成しました。私はもうエラーメッセージが表示されません。 – tluafed