JMPグラフビルダーのmatplotlibこんにちは私はmatplotlibとJMPグラフビルダーを組み合わせようとしていますが、それが可能かどうかわかりません。 matplotlibでしかプロットできない特定のグラフをプロットしたいと思います。しかし、データフィルタリングなど、JMPグラフビルダーインターフェイスの利点を活用したいと思います。 JMPグラフビルダーインターフェイスを介してmatplotlibプロットを表示することは可能ですか? 前もって感謝します
グラフィックススクリプティングRe:JMPグラフビルダーのmatplotlibスクリプトは、データフィルターを使用して処理できます。データフィルターは、matplotlibコードをトリガーし、フィルター処理されたデータに基づいてグラフを再作成します。しかし、とにかくGraphBuilderをmatplotlibと統合する方法はわかりません。
Re:JMPグラフビルダーのmatplotlib望ましい結果を誤解するかもしれませんが、必要なのはデータフィルターとプロットだけであり、グラフビルダー(GB)のドラッグアンドドロップの対話性やGB内の複雑なグラフレイアウトは必要ないようです。
もしそうなら、私はあなたが少なくとも次の成分が必要だと信じています:
- JSL関数「MakeFilterChange Handler」。これにより、データフィルターの状態に基づいてデータのサブセットを取得できます。 ScriptingIndexの「MakeFilterChangeHandler」の例を参照してください。
- JSL関数「PythonGetGraphics」なので、Pythonからプロットを取り戻すことができます。 ScriptingIndexの「PythonGetGraphics」の例を参照してください。
- フィルタとプロットの両方、および場合によっては他の分析を一緒に保持するための「データフィルタコンテキストボックス」表示ボックス。
これは、要素をまとめた小さな例です。
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
New Window( "Shared Local Filter",
Data Filter Context Box(
H List Box(
filter = (dt << Data Filter( Local, Add Filter( columns( :Region ) ) )),
pb = Picture Box()
)
)
);
f = Function( {nrows},
rows = filter << get filtered rows;
xx = dt:X[rows];
yy = dt:Y[rows];
Python Init();
Python Send(xx);
Python Send(yy);
ml = Python Submit(
"\[
import matplotlib.pyplot as plt
plt.scatter(xx,yy)
plt.xlabel('X')
plt.ylabel('Y')
plt.show(block=False)
]\"
);
plot = Python Get Graphics( png );
pb << set image(plot);
Python Submit( "plt.close()" );
Python Term();
);
rs = filter << Make Filter Change Handler( f );
Pythonのインデント規則に注意してください。 たとえば、Python Submitのすべての文字列は、行の先頭に前に付ける必要があります。
これが製品のスクリーンショットです。


Re:JMPグラフビルダーのmatplotlib素晴らしい素晴らしい例です!
この例を使用する場合は、最初のクリック後にPythonがロードされるのを待つ準備をしてください。私の遅いマシンは10-30秒かかるかもしれません。 ロードされると、それ以降のクリックで十分な速度になります。
Re:JMPグラフビルダーのmatplotlibこの例をJMPクックブックに追加する必要があります