Plotly-figurewidget-class

提供:Dev Guides
移動先:案内検索

Plotly-FigureWidgetクラス

Plotly 3.0.0では新しいJupyterウィジェットクラスが導入されました: plotly.graph_objs.FigureWidget 。 これは、既存のFigureと同じ呼び出しシグネチャを持ち、特に Jupyter Notebook および* JupyterLab環境*用に作成されています。

  • go.FigureWiget()関数*は、デフォルトのx軸と y 軸を持つ空のFigureWidgetオブジェクトを返します。
f = go.FigureWidget()
iplot(f)

以下のコードの出力です-

図ウィジェットグラフ

FigureWidgetの最も重要な機能は、結果として得られるPlotlyの図であり、データやその他のレイアウト属性を追加するときに動的に更新できます。

たとえば、次のグラフトレースを1つずつ追加して、動的に更新された元の空の図を確認します。 つまり、プロットが自動的に更新されるため、iplot()関数を何度も呼び出す必要がありません。 FigureWidgetの最終的な外観は以下のとおりです-

f.add_scatter(y = [2, 1, 4, 3]);
f.add_bar(y = [1, 4, 3, 2]);
f.layout.title = 'Hello FigureWidget'

フィギュアウィジェット

このウィジェットは、ポイントしたり、クリックしたり、ポイントを選択したり、領域を拡大したりするイベントリスナーに対応しています。

次の例では、FigureWidgetがプロットエリアのクリックイベントに応答するようにプログラムされています。 ウィジェット自体には、マーカー付きの単純な散布図が含まれています。 マウスクリックの場所は、異なる色とサイズでマークされます。

x = np.random.rand(100)
y = np.random.rand(100)
f = go.FigureWidget([go.Scatter(x=x, y=y, mode='markers')])

scatter = f.data[0]
colors = ['#a3a7e4'] *100

scatter.marker.color = colors
scatter.marker.size = [10]* 100
f.layout.hovermode = 'closest'
def update_point(trace, points, selector):

c = list(scatter.marker.color)
s = list(scatter.marker.size)
for i in points.point_inds:

c[i] = 'red'
s[i] = 20

scatter.marker.color = c
scatter.marker.size = s
scatter.on_click(update_point)
f

上記のコードをJupyterノートブックで実行します。 散布図が表示されます。 赤い色でマークされる領域の場所をクリックします。

場所

PlotlyのFigureWidgetオブジェクトは、* Ipythonの*独自のウィジェットを利用することもできます。 ここでは、 ipwidgets モジュールで定義されている対話コントロールを使用します。 最初に FigureWidget を作成し、*空の散布図*を追加します。

from ipywidgets import interact
fig = go.FigureWidget()
scatt = fig.add_scatter()
fig

次に、周波数と位相を入力し、上で定義した*散布図*のxプロパティと y プロパティを設定する*更新関数*を定義します。 ipywidgetsモジュールの* @ interactデコレーター*を使用して、プロットのパラメーターを制御する単純なウィジェットのセットを作成します。 update関数は、* ipywidgetsパッケージ*の* @ interactデコレーター*で装飾されています。 デコレータパラメータは、スイープしたいパラメータの範囲を指定するために使用されます。

xs = np.linspace(0, 6, 100)
@interact(a = (1.0, 4.0, 0.01), b = (0, 10.0, 0.01), color = ['red', 'green', 'blue'])
def update(a = 3.6, b = 4.3, color = 'blue'):
with fig.batch_update():
scatt.x = xs
scatt.y = np.sin(a*xs-b)
scatt.line.color = color

空のFigureWidgetに、サインカーブ aおよび b がそれぞれ3.6および4.3の青色で入力されます。 現在のノートブックセルの下に、 a および b の値を選択するためのスライダーのグループが表示されます。 トレースの色を選択するためのドロップダウンもあります。 これらのパラメータは* @ interactデコレータ*で定義されています。

Interactデコレータ