JMP グラフ ビルダーの matplotlibこんにちは、matplotlib と JMP グラフ ビルダーを組み合わせようとしていますが、それが可能かどうかはわかりません。 matplotlib でしかプロットできない特定のグラフをプロットしたい。しかし、データのフィルタリングなど、JMP グラフ ビルダー インターフェイスの利点を活用したいと考えています。 JMP グラフ ビルダー インターフェイスで matplotlib プロットを表示することは可能ですか? 前もって感謝します
グラフィックスクリプティングRe: JMP グラフビルダーの matplotlibこの例は JMP クックブックに追加する必要があります
Re: JMP グラフビルダーの matplotlib素晴らしい素晴らしい例です!
この例を使用する場合は、最初のクリック後に Python がロードされるのを待つ準備をしてください。私の低速のマシンは 10 ~ 30 秒かかる場合があります。 読み込まれると、その後のクリックで十分に高速です。
Re: JMP グラフビルダーの matplotlib望ましい結果を誤解しているかもしれませんが、グラフ ビルダー (GB) のドラッグ アンド ドロップ操作や GB 内の複雑なグラフ レイアウトではなく、データ フィルターとプロットのみが必要なように思えます。
もしそうなら、少なくとも次の成分が必要だと思います:
- JSL関数「Make Filter Change Handler」により、データフィルターの状態に基づいてデータのサブセットを取得できます。 スクリプト インデックスの「フィルタ変更ハンドラの作成」の例を参照してください。
- JSL 関数 "Python Get Graphics" を使用すると、Python からプロットを取得できます。 Scripting Index の「Python Get Graphics」の例を参照してください。
- フィルターとプロットの両方を保持するための「データ フィルター コンテキスト ボックス」表示ボックス。
要素をまとめた小さな例を次に示します。
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スクリプトは、matplotlib コードをトリガーし、フィルター処理されたデータに基づいてグラフを再作成するデータ フィルターを使用して処理できます。しかし、Graph Builder を matplotlib と統合する方法はわかりません。