JMP 圖形產生器上的 matplotlib您好,我正在嘗試將 matplotlib 和 JMP 圖形產生器結合起來,但我不知道是否可行。 我想繪製一個只能在 matplotlib 上繪製的特定圖表;但我想利用 JMP 圖形產生器介面的優勢,例如資料過濾。 是否可以透過 JMP 圖形產生器介面顯示 matplotlib 圖? 先致謝
內容組織回覆:JMP 圖形產生器上的 matplotlib此範例需要添加到 JMP Cookbook 中
回覆:JMP 圖形產生器上的 matplotlib驚人的好例子!
如果您使用此範例,請準備好在第一次點擊後等待 Python 載入;我的慢速機器可能需要 10-30 秒。 載入後,後續點擊速度夠快。
回覆:JMP 圖形產生器上的 matplotlib我可能會誤解所需的結果,但聽起來您只需要一個資料過濾器和一個繪圖,而不需要圖形產生器(GB)中的拖放互動性和 GB 中的複雜圖形佈局。
如果是這樣,我相信你至少需要以下成分:
- JSL 功能“Make Filter Change Handler”,因此您可以根據資料篩選器的狀態取得資料子集。 請參閱腳本索引中「建立過濾器變更處理程序」的範例。
- JSL 函數“Python Get Graphics”,因此您可以從 python 取得繪圖。 請參閱腳本索引中「Python 取得圖形」的範例。
- 「資料過濾器上下文框」顯示框,用於將篩選器和繪圖以及可能的其他分析放在一起。
這是一個將元素組合在一起的小範例。
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 中的所有字串都必須將它們放在行的開頭。
這是該產品的幾個螢幕截圖。


回覆:JMP 圖形產生器上的 matplotlib腳本可以使用資料過濾器進行處理,該過濾器會觸發 matplotlib 程式碼並根據過濾後的資料重新建立圖形。但我不知道如何將 Graph Builder 與 matplotlib 整合。