如何將多個數據添加到同一個圖表中?大家早上好/下午好。
我覺得這應該非常簡單,但我正在努力弄清楚如何做到這一點。在 OriginPro 中,這確實很容易,但我必須第一次使用 JMP 來工作,所以我對這個程序完全是新手。
問題:我有兩組 XRD 數據。一台來自舊機器,一台來自全新機器。數據是在同一域中獲取的,範圍從大約 -6000 到 +3000 角秒。然而,兩台機器之間的數據點間距不同。
所以我有這兩個數據集,我需要將它們疊加在同一個圖上。x(以角秒為單位的角度)和 y(以 CPS 為單位的強度)的定義相同。
對於這兩個數據集,主反射發生在大約 0 角秒(如預期)。附件是兩台機器(D1 和 V1)的數據圖。
我嘗試使用圖形生成器將這些數據添加到同一個圖形中,將一個數據疊加在另一個之上。我嘗試將兩個 x 域拖動到 x 軸,但這不會產生所需的行為。兩個數據集都僅使用其中一個 x 範圍來繪製,而不是根據“它的”x 繪製 D1,並且根據“它的”x 繪製 V1。因此,這會導致其中一個數據集被壓縮或拉伸,具體取決於使用哪個 x。附件是在圖形生成器中繪製的兩個數據集,您可以看到問題。
我想要的只是固定 x 範圍,並針對 x 軸繪製多個 y。
鑑於我對 JMP 還很陌生,交互式解決方案會更好,但如果腳本是唯一可能的方式,那麼我也會接受。
在此先感謝您的幫助。
V1V1V1
D1D1D1
D1+V1D1+V1D1+V1
質量和工藝工程回复:如何將多個數據添加到同一個圖表中?你好,
我經常使用 2 組數據(X1/Y1、X2/Y2),它們都在不同的列中,並將它們疊加到一個 XY 圖中。目前,我最終在一張圖中有 4 個圖(X1/Y1、X1/Y2、X2/Y1、X2/Y2,我只需要 X1/Y1 和 X2/Y2)。我總是要花半天時間才能把情節弄清楚。
感謝 JDA,我很高興知道我並不孤單。
如果 JMP 能夠在版本 18 中為此創建一個交互式解決方案,我真的很感激。
回复:如何將多個數據添加到同一個圖表中?我已經編寫了一個腳本,應該可以滿足您的要求。它以一個包含四列的表開始:x1、y1、x2、y2。

問題是您需要將 x2 和 y2 堆疊在 x1 和 y1 下面,並添加一個列來區分兩組數據。這是您想要最終得到的結果:

這是腳本。請注意,前幾行定義了一個與您的表類似的表,由變量 dt 引用。
// Create an example table
dt = New Table( "Untitled 2", Add Rows( 4 ),
New Column( "x1", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [1, 2, 3, 4] ) ),
New Column( "y1", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [4, 2, 3, 1] ) ),
New Column( "x2", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [3, 5, 7, 8] ) ),
New Column( "y2", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [5, 2, 8, 2] ) )
);
// For your case you would point the dt variable to your own table.
// dt = data table("My Data Table");
nr = nrows(dt);
// Make the new table
newdt = New Table( "Untitled 5",
Add Rows( 2 * nr ),
New Column( "x", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "y", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "Machine", Character, "Nominal")
);
// In the next section of code, replace x1 and y1 with your column names for the first x-y pair
// Start with X1, Y1
for (i = 1, i <= nr, i++,
newdt:x[i] = dt:x1[i];
newdt:y[i] = dt:y1[i];
newdt:Machine[i] = "A";
);
// In this section of code, replace x2 and y2 with your column names for the second x-y pair
// Now add X2, Y2
for (i = (nr + 1), i <= 2 * nr, i++,
newdt:x[i] = dt:x2[i - nr];
newdt:y[i] = dt:y2[i - nr];
newdt:Machine[i] = "B";
);
// Create the graph
newdt << Graph Builder(
Size( 886, 452 ),
Show Control Panel( 0 ),
Variables( X( :x ), Y( :y ), Overlay( :Machine ) ),
Elements( Line( X, Y, Legend( 13 ) ), Points( X, Y, Legend( 14 ) ) )
);
要運行此代碼,請將其複製到剪貼板。在 JMP 中,按 CTRL-T 打開一個新的腳本窗口,粘貼代碼,然後按 CTRL-R 運行它。

我更願意使用更簡單的解決方案表 > 堆棧,但無法弄清楚如何實現這一點(這是對所有 JMP 用戶的挑戰!)。這個腳本是下一個最好的東西。
回复:如何將多個數據添加到同一個圖表中?確定的解決方案就是實現這一目標的方法。 我提供了另一個示例來表明“兩組數據”不需要具有相同的 x 值。
我相信您遇到的主要問題是如何正確設置數據。 從變量的角度思考。 你有一個 X 變量(我認為它叫做 Omega)。 你有 Y 值(我相信它叫做 Velox??)。 您有第三個變量,稱為 Machine。 您的數據表應該有三列,每個變量一列,就像@pmroz顯示。
他的解決方案顯示了 JMP 腳本,因為這是在該論壇中演示解決方案的最簡單方法。 但一旦數據設置正確,交互步驟就非常簡單。 這是一個示例表:

轉到圖形 > 圖形生成器。
將 Omega 拖至 X 軸。 將 Velox 拖至 Y 軸。 將機器拖至疊加字段。
我單擊了平滑器按鈕以刪除平滑器。
按住 Shift 鍵並選擇線元素按鈕來添加它。

根據您的計數方式,一旦您通過考慮變量正確設置了數據,就需要 5 個步驟。
回复:如何將多個數據添加到同一個圖表中?這可行,但這是一個非常糟糕的黑客行為。
這真的是唯一的方法嗎?真的沒有更簡單的方法來完成像這樣基本的事情嗎?
回复:如何將多個數據添加到同一個圖表中?數據都在同一個數據表中,但重申一下,問題是它們不共享同一組 x 值,因此您的答案不起作用。
回复:如何將多個數據添加到同一個圖表中?這是表格:

這是結果圖:

回复:如何將多個數據添加到同一個圖表中?這是一種方法:
- 向每個數據集添加一列,例如“機器”。V1 表中的值為 V1,P1 表中的值為 P1。
- 現在連接兩個表。
- 運行圖形生成器並將 Omega 拖至 X,將 Y 列拖至 Y
- 將機器拖至疊加
下面是一些代碼,展示瞭如何執行此操作:
dt = New Table( "Test Combo", Add Rows( 6 ),
New Column( "Omega", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [1, 2, 3, 1, 2, 3] ) ),
New Column( "Y", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [1, 4, 10, 2, 7, 20] ) ),
New Column( "Machine", Character, "Nominal",
Set Values( {"D1", "D1", "D1", "V1", "V1", "V1"} ) )
);
dt << Graph Builder( Size( 527, 452 ), Show Control Panel( 0 ),
Variables( X( :Omega ), Y( :Y ), Overlay( :Machine ) ),
Elements( Line( X, Y, Legend( 13 ) ) ),
SendToReport( Dispatch( {}, "Y", ScaleBox,
{Scale( "Log" ), Format( "Best", 12 ), Min( 0.7 ),
Max( 20.3648979591837 ), Inc( 1 ), Minor Ticks( 1 )}
)
)
);回复:如何將多個數據添加到同一個圖表中?圖表的數據必須來自單個數據表。因此,您需要做的就是獲取 2 個數據表並將它們連接或連接在一起,這樣您最終就會得到 1 個 X 列和 2 個 Y 列。然後您需要做的就是打開圖形生成器並將 X 列拖動到 X 放置區域,然後選擇兩個 Y 列並將它們拖動到 Y 放置區域
使用
表=>連接
或者
表格=>連接
將數據放在一起。確保兩個數據表中的 X 列名稱相同,Y 列名稱不同。