IPythonノートブックには、シリアルポートとprint
をリアルタイムでリッスンするwhileループがあります。
私が達成したいのは、最新の受信データのみを表示することです(つまり、最新のデータを表示するのは1行のみです。セル出力領域はスクロールしません)。
私が必要なのは、新しいデータを受け取ったときに古いセルの出力をクリアし、新しいデータを印刷することです。古いデータをプログラムでクリアするにはどうすればよいですか?
IPython.display.clear_output
を使用して、セルの出力をクリアできます。
from IPython.display import clear_output
for i in range(10):
clear_output()
print("Hello World!")
このループの終わりには、Hello World!
が1つだけ表示されます。
コードの例がなければ、動作するコードを提供するのは簡単ではありません。おそらく、最新のn個のイベントをバッファリングすることは、優れた戦略です。バッファが変更されるたびに、セルの出力をクリアして、バッファを再度印刷できます。
そして、あなたがここに来た場合、私がしたように、JupyterのJuliaノートブックのプロットに対して同じことをして、プロットを使用して、あなたは以下を使用することができます:
IJulia.clear_output(true)
したがって、複数の実行のアニメーションプロットの種類
if nrun==1
display(plot(x,y)) # first plot
else
IJulia.clear_output(true) # clear the window (as above)
display(plot!(x,y)) # plot! overlays the plot
end
Clear_output呼び出しがないと、すべてのプロットが個別に表示されます。