圖形產生器:如何為每個系列製作具有一定位移的堆積圖你好 - 我在 Excel 中有一個電子表格,它輸出多個系列的圖,這些系列全部堆疊並彼此移位,但也允許重複具有更緊密的間距,如下所示:

然而,這需要多張紙,而且每次都需要手動重做位移,並且不斷調整顏色,因為這在 Excel 中很難控制。 JMP 會容易一千倍。
圖形生成器中是否有一種方法(或者,為了避免 XY 問題,在 JMP 中的其他地方)可以輕鬆地透過拖放來實現此目的? 即使需要手動修改所需的間距,圖形產生器中的拖曳列也會使其變得更加容易。 我似乎無法重新創建它,但也許我只是錯過了一些東西,我想我會問一下。
謝謝!
自動化和腳本編寫數據探索和視覺化分享和交流成果視窗回覆:圖形產生器:如何為每個系列製作具有一定位移的堆積圖您可以在 y 軸上使用公式列,將顏色列 × 比例因子新增至原始 y 值。回覆:圖形產生器:如何為每個系列製作具有一定位移的堆積圖複製品彼此完全相同?
回覆:圖形產生器:如何為每個系列製作具有一定位移的堆積圖你好@ehchandler ,
以下是一些 JSL 程式碼,可以完成部分工作——它可以輕鬆地為每個光譜添加固定偏移量,並且為每個附加光譜添加相同的偏移量。 因此,對於第一個頻譜,沒有偏移,但每個附加頻譜都會獲得n*5000 的偏移,在我的例子中我使用了500 — 我使用了NMR DoE.jmp 範例資料表並將其轉置以獲取列光譜,我猜你的數據表是如何構造的,而不是行作為光譜,列作為波長。 無論如何,您應該能夠修改此程式碼以最適合您的資料結構和資料表。 我附上了程式碼和修改後的範例資料表,以便您查看。 這是結果。 然後,您可以手動進入並編輯您需要的任何重複或特定光譜的偏移。
上圖沒有偏移,下圖有偏移。 顏色編碼由 JMP 自動進行。

這是代碼:
Names Default To Here( 1 );
dt = Current Data Table(); //assigns current data table to variable dt
ColNames = dt << Get Column Names; //gets a list of column names
offset = 5000;
//This generates a new column for each spectra with the column name + Offset to it
For( i = 2, i <= N Items( ColNames ), i++,
If( i == 2,
offset = 0, // no offset for the first spectrum
offset = 5000 //offset amount for each additional spectrum
);
Eval( Eval Expr( dt << New Column( Colnames[i] || " Offset", Formula( Expr( As Name( ColNames[i] ) ) + (Expr( (i - 2) * offset )) ) ) ) ); //the (i-2) is so the second spectrum is offset only by 5000 and not 10000
);
一種緩慢但萬無一失的方法是建立新列並手動為每列產生公式,但它的工作原理是相同的。
希望這可以幫助!,
DS
回覆:圖形產生器:如何為每個系列製作具有一定位移的堆積圖@tx尼爾森就我而言,我有大約 50 個變數可以用來定義一系列的系列。 我分享的圖片中的那兩個我認為是真正的重複,但我正在尋找的不需要兩整行相同才能匹配。
我想如果我必須設計它,它可能會有一個“系列”變數的下拉框,以測試是否應該匹配任何系列(並顯示得更接近)。 我想這個系列變數也應該能夠為點著色,或改變大小,或其他。 然後也許是一個滑桿來調整比例因子@hogi提到了兩者之間的差距。
我很確定我剛剛描述的內容目前在 JMP 中是不可能的,所以... 我剛剛給出的願望清單有 XY 問題,但希望這能澄清我正在尋找的內容,也許有一些 GUI 方法可以做到這一點? 如果不, @hogi的方法應該有效。
回覆:圖形產生器:如何為每個系列製作具有一定位移的堆積圖哦有趣。 是的,這可以做到,儘管它不是一個圖形生成器解決方案。 我想知道是否有一種方法可以根據 *series* 變數動態選擇顏色系列和比例因子,該變數告訴 jmp 哪些行屬於哪個系列。 嗯嗯嗯。 我得考慮一下這個問題。
回覆:圖形產生器:如何為每個系列製作具有一定位移的堆積圖你好@ehchandler ,
據我所知,除了手動建立新的列公式來獲取感興趣的列並添加固定偏移量之外,沒有動態方法(即單獨使用圖形生成器)來創建像您一樣的偏移光譜。 但是,這正是我的腳本以自動化方式執行的操作,這將為您節省大量時間。 事實上,如果您要經常重複執行此操作,我會考慮使用 JSL 編寫腳本,以自動方式為您執行此操作。 透過動態操作圖表,您將節省大量時間。 有時,首先需要動態地設定分析或圖表,以便學習如何編寫腳本,但是一旦您擁有它並且可以將其應用於其他資料表,那麼讓 JSL 程式碼為您做這件事會快得多。透過腳本,您可以進入並為每個光譜分配特定的顏色,並且可以根據資料表中的列號來執行此操作,例如:
根據JMP JSL 腳本編寫指南 v16 ,第 660-662 頁,標準 JMP 配色方案是:

然後每種顏色都可以透過將它們設為淺色、中淺色、中深色和深色來進行更改:

或者,如果您想更改全域配色方案,可以轉到“檔案”>“首選項”,選擇頂部(左側)的“圖形”,然後按一下右下角名為“分類”的配色方案。

然後你會得到一個像這樣的螢幕,例如,如果我選擇底部的 Chromatic 樣式並再次繪製光譜,它看起來像這樣(順序也可以顛倒):


該方法的唯一缺點是,這現在是 JMP 中所有圖形的全局配色方案,而不僅僅是您正在處理的圖形。 如果需要,您可以隨時返回並在首選項中進行更改。
或者,一旦您獲得所需的圖表,您始終可以右鍵單擊選擇的光譜,然後選擇線條顏色,然後選擇顯示的任何預設顏色,甚至從更大的調色板中選擇其他...。 但是,如果您有大量光譜,這可能會很慢。

有很多方法可以在 JMP 中完成相同的事情,這很棒,這在某種程度上取決於您的具體需求是什麼以及您的最終目標是什麼以及哪種方法可能會更好。
希望這可以幫助!,
DS