0
Jupyterノートブックを使用してipywidgetsで同様のプロットを効率的に表示するにはどうすればよいですか?プロットの要素をipywidgetsで効率的に置き換えるにはどうすればいいですか?
私は重いプロット(データポイントがたくさんあり、プロットするのに時間がかかります)をインタラクティブにプロットし、すべての複雑なプロットを再作成せずにipywidgetsからの対話を使用してそれを修正したいと考えています。これを行うための組み込み機能はありますか?
基本的に私は何をしようとしているが
import numpy as np
import matplotlib.pyplot as plt
from ipywidgets import interact
import matplotlib.patches as patches
%matplotlib inline #ideally nbagg
def complicated plot(t):
plt.plot(HEAVY_DATA_SET)
ax = plt.gca()
p = patches.Rectangle(something_that_depends_on_t)
ax.add_patch(p)
interact(complicatedplot, t=(1, 100));
は、今のところは、各再プロットのために2秒を要しています。私はそこに図を保持し、その四角形を置き換える方法があると思います。
定数部分の図形を作成し、プロットの背景にし、矩形部分をプロットするだけです。しかし
あまりにも汚い音は(私はあなたがIPythonまたはJupyterノートブックであると仮定しています)。これは、長方形の幅を変更するためのインタラクティブな方法のラフな例であるあなた
本当にやりたいことの詳細を追加できますか?たとえば、散布図では、プロットが 'p'変数で参照されている場合は、単に' p.set_offsets'を実行してデータを再定義することができます。おそらく 'ax.get_children()'のようなことをして、それらのオブジェクトの1つを変更することができます。ウィジェットの場合、ipywidgetsには更新する関数を定義することができる 'observe'メソッドがあると思いますが、あなたのプロットを変更する関数を定義することができます –
100行のプロットを表示したい(plt.plot(HEAVY_DATA_SET) )そして、それらの行の上に垂直矩形を追加するだけです。 – gota
おそらく 'ax.get_children()'から矩形を削除し、その矩形を再描画できますか?たとえば、 'ax.get_children()'を呼び出すと、リスト内にいくつかの '