大家早上好/下午好。
我覺得這應該非常直接,但我正在努力弄清楚如何做到這一點。在 OriginPro 中,這真的很容易,但我第一次必須使用 JMP 來工作,所以我對這個程序完全是新手。
問題:我有兩組 XRD 數據。一台來自舊機器,一台來自全新機器。數據在相同的域中進行,從大約 -6000 到 +3000 弧秒。但是,兩台機器之間數據點的間距是不同的。
所以我有這兩個數據集,我需要將它們疊加在同一個圖上。x(以弧秒為單位的角度)和 y(以 CPS 為單位的強度)的定義相同。
對於這兩個數據集,主要反射發生在大約 0 弧秒(如預期)。附件是來自兩台機器(D1 和 V1)的數據圖。
我嘗試使用 Graph Builder 將這些數據添加到同一個圖表中,將一個數據疊加在另一個圖表上。我曾嘗試將兩個 x 域拖到 x 軸上,但這不會導致所需的行為。D1 不是針對“它的”x 繪製的,而是 V1 是針對“它的”x 繪製的,而是僅使用 x 範圍之一繪製兩個數據集。因此,這會導致其中一個數據集被壓縮或拉伸,具體取決於使用的 x。附件是圖形生成器中繪製的兩個數據集,您可以看到問題。
我想要的是固定 x 範圍,並針對 x 軸繪製多個 y。
鑑於我還是 JMP 的新手,交互式解決方案會更可取,但如果腳本是唯一可能的方法,那麼我也會接受。
在此先感謝您的幫助。
圖表的數據必須來自單個數據表。因此,您需要做的是獲取 2 個數據表並將它們連接或連接在一起,以便最終得到 1 個 X 列和 2 個 Y 列。然後你需要做的就是打開Graph Builder並將X列拖到X放置區,然後選擇兩個Y列並將它們拖到Y放置區
用
表=>加入
或者
表=>連接
將數據放在一起。確保兩個數據表中的 X 列名稱相同,而 Y 列名稱不同。
這是一種方法:
- 為每個數據集添加一列,例如“機器”。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 )}
)
)
);數據都在同一個數據表中,但重申一下,問題是它們不共享相同的 x 值集,因此您的答案不起作用。
這是有效的,但這是一個非常糟糕的黑客。
這真的是唯一的方法嗎?真的沒有更簡單的方法來完成像這樣基本的事情嗎?