使用圖形生成器創建帶有分組 Y 數據的圖形<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />你好,
我是一名熱帶生態學家,專門研究亞馬遜樹冠。 我正在撰寫博士論文,並使用 JMP Pro(我是一個沒有編程經驗的新用戶)對我的數據運行 PLS 和其他分析。 我有一個大型樹葉數據集,按樹、葉冠層(陽光或陰影)和葉齡分組。 在我的第一個分析中,我有 12 棵樹,其中 4 棵樹既有遮陽葉又有遮陽葉,其餘的只有遮陽葉。 我需要為不同的葉子性狀創建圖表,例如葉子含水量、葉子厚度、葉子鮮重和乾重、碳含量百分比等,需要構建這些圖表:
X 軸 = 葉齡
Y = 按樹木、按陽光和樹冠位置分組的葉子性狀(例如葉子厚度)
我一直在嘗試創建這些圖表,但我不斷得到一個圖表,該圖表將每棵樹的 Y 比例分開,當我嘗試將陽光和陰影分組到圖表中時,一切都會變得更糟。 如果有人能建議我如何創建這些 Y 分組圖以及如何最好地自動生成大量圖表,我將非常感激。 非常感謝您的幫助!
回复:使用圖形生成器創建帶有分組 Y 數據的圖形非常感謝您的及時回复。 事實上,一些數字列已經進入字符模式。 我現在已經糾正了這個問題,我的圖表有意義並顯示出驚人的模式,非常非常感謝!
回复:使用圖形生成器創建帶有分組 Y 數據的圖形是的,這是一個有用的線索。 看起來平均 RoC 列是作為字符列而不是數字列,並且 JMP 將其僅視為名稱列表。 您可以在“列信息”對話框中修復該問題。 將數據類型更改為數值,並將建模類型更改為連續。
回复:使用圖形生成器創建帶有分組 Y 數據的圖形非常感謝 MS 和 Xan 的建議,稍後當我需要讓我的圖表看起來足夠好以供發佈時,我將研究 Illustrator 和 OmniGraffle。 目前,我正在創建大量圖表,以便向主管展示數據的初始可視化效果。
到目前為止,我已經創建了第一組線圖,代表葉子隨著年齡增長的不同物理特性(葉子厚度、面積、乾重等)和化學特性(%C、%nN 等含量)。 在這些帖子的歷史中可以看到這樣一張葉子厚度圖的演變。 在您的幫助下,我成功創建了線圖,表示每棵樹每個樹冠位置的每個葉齡的葉子組的平均值。 我現在正在嘗試創建一組新的圖表來表示這些相同的物理和化學從一個葉齡到下一個葉齡的平均變化率 (avg RoC)。 然而,我很早就遇到了問題。 我根據 Excel 中不同葉子屬性的平均值計算了平均 RoC (avg RoC=y2-y1/x2-x1),然後將數據導入到新的 JMP 數據表中。 然而,當我嘗試為平均 RoC 創建折線圖時,事情又開始出錯。 正如您從下圖中看到的,負 Y 軸值由於某種原因被顛倒了,在下面所示的情況下,最大負平均 RoC 值為 -23.155…(我已經仔細檢查了我的數據,這個值是正確的)甚至被重新排列到中間的某個位置?! 我嘗試過勾选和取消勾選行順序,當我打開 Y 軸設置窗口時,我在正確的最小值和最大值之前找到了這一行:
格式:0為-0.004850; 56 是 5.805832
我猜這與它有關,但我不明白它是如何工作的或我如何糾正它。 我還查看了該圖的腳本,但找不到任何對此的引用。 你能幫我解決這個問題嗎?

預先非常感謝您的幫助,
張柏芝
回复:使用圖形生成器創建帶有分組 Y 數據的圖形在 Mac 上,OmniGraffle 是一款易於使用的矢量圖形應用程序。要在 JMP 輸出上使用它,請使用從 JMP 打印並選擇另存為 PDF。 OmniGraffle 可以打開 PDF 文件。 Adobe Illustrator 可以處理更多格式,但更難使用且更昂貴。 一些分析師將這種圖形清理稱為“後期製作”編輯,而且它(目前)還不是 JMP 的專長。
回复:使用圖形生成器創建帶有分組 Y 數據的圖形要添加參考線,只需雙擊軸即可打開軸設置面板。 您可以在此處指定一條或多條參考線的值、顏色和样式。
對於上面腳本示例中的圖形,通過以下代碼添加 60 處的灰色 y 軸參考線:
report(gb)[scalebox(2)]<<ADD ref="" line=""></ADD>
我所說的矢量繪圖程序並不是指繪圖軟件,而是通用繪圖軟件,例如 Adobe Illustrator,可以編輯圖形的任何方面。 只需從 JMP 複製並粘貼到 Illustrator 中即可。 學習基礎知識並不難。
回复:使用圖形生成器創建帶有分組 Y 數據的圖形你好女士,
非常感謝您的回复,我將嘗試您的建議,稍後刪除整個組框,因為我需要繼續並向我的主管發送一些圖表,以便稍後我會進行更多實驗。 不過,我能否再問一個關於這些圖的問題,如何在 0 上添加一條灰線。
我對你提到的“矢量繪圖程序”感興趣,我能問一下你用什麼軟件嗎? 我使用 MAC,在谷歌搜索“MAC 的矢量繪圖程序”後,我對這些程序的作用有點困惑,它們似乎不是為了創建圖形而設計的,您是否將圖形導入到這些程序中,然後根據需要添加或刪除內容? 我不知道這是否是我想要的方向,這類程序是不是很難學? 我之前曾收到過學習 Sigmaplot(我在 Mac 上使用 Paralleles)或學習 R、Matlab 或 Python 編程的建議,但我對這些選項有點困惑。 通過我的大學,我可以使用 Sigmaplot 和 Matlab。 我嘗試過 SIgmaplot,但沒有取得多大進展,我還沒有嘗試過 Matlab。 我已經在計算機上安裝了 R,但我仍然無法安裝一些 Python 模塊。 對於所有這一切的任何建議和/或建議,我將非常感激,因為我目前對選擇感到不知所措!
回复:使用圖形生成器創建帶有分組 Y 數據的圖形整個組框可以刪除,但我不知道如何僅刪除標題。 它似乎是一種特殊的(未記錄的)類型的展示盒。
下面是有關如何刪除組框的示例。 它還顯示瞭如何添加新的組標籤。
dt = open("$sample_data\Big Class.jmp");
gb=graph Builder(
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ), Group X( :sex ) ),
);
Report( gb )[Graphbuildergroupbox( 1 )] << delete;
Report( gb )[framebox( 1 )]<<ADD text="" annotation=""></ADD>
我使用圖形生成器作為發現數據中的模式和關係的快速方法,並且所有高級選項都允許查找相當複雜的模式。 然而,一旦我選擇了圖表,我幾乎總是將其放入矢量繪圖程序中,在用於演示文稿或手稿之前可以對其進行詳細編輯。
回复:使用圖形生成器創建帶有分組 Y 數據的圖形哈拉·贊,
再次非常感謝您的及時回复。
1. 我嘗試了您的建議,在 X 組中使用“大小”消息,但這只是將 X 組標頭移動到與實際 Canopy 位置相同的級別,如下圖所示:

我已經進入“首選項”,除了將 X 組邊緣更改為圖表底部之外,沒有任何內容可以格式化 X 組。
關於解釋刪除 X 組標題的必要性,這是因為我不需要它。 無論如何,我必須添加註釋來解釋圖形圖例中的“SU”和“SH”標籤的含義,因此標題是不必要的。 我什至嘗試刪除列的名稱,這樣就沒有標題,但顯然不允許沒有名稱的列。
我注意到在下麵包含的腳本中,X 組變量是使用“”聲明的,我認為這些變量用於文本/標題名稱,如 X 變量中一樣。 不知道為什麼X集團也這麼聲明? 實際上,我剛剛將 X Group 的名稱更改為 Canopy Position,現在將其聲明為 Y 變量,所以我猜測當變量名稱包含符號時使用“”,對嗎?
Variables(
X( :Name( "Leaf Age Class (age in cummulative weeks)" ) ),
Y( :thickness ),
Group X( :"SU-SHCanopyPos", Size(1), Levels( 2 ) ),
Overlay( :tree )
),
好吧,到目前為止,我嘗試過的任何方法都不起作用,我很困惑為什麼無法自定義 X 和 Y 組標頭,而使用所有其他標頭可以輕鬆完成此操作,這似乎有點設計錯誤?! 您或其他人對如何擺脫 X Group 標頭有更多想法嗎?
非常感謝,
張柏芝
回复:使用圖形生成器創建帶有分組 Y 數據的圖形1. 您能否詳細解釋一下刪除 Group X 標頭的必要性? 您一定想以某種方式給面板貼上標籤。 如果您想要不同的樣式,您可以在“首選項”中解決它。 我確實注意到您可以通過使用 X 組中的大小消息來隱藏級別名稱:
Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
Variables( X( :height ), Y( :weight ), Group X( :sex, Size( 1 ) ) ),
Elements( Points( X, Y ), Smoother( X, Y ) )
);
1b. 學習 JSL 顯然並不太難。 我這麼說並不是因為我已經使用它太久了,這對我來說很容易,而是因為今年夏天我們有幾位學生實習生,他們在幾天內完成了不錯的項目,在幾週內完成了複雜的項目。 無論如何,“幫助”菜單中的“腳本索引”和您已經發現的“保存到腳本”是快速上手的關鍵。
2. 太棒了。
3. 我忘記了嵌套的 X 軸如何將線一直連接起來。 一個醜陋的解決方法是將 Canopy 與您的覆蓋變量連接起來,但是這樣每行都會有不同的顏色,您必須手動更改一些顏色以匹配樹值。
回复:使用圖形生成器創建帶有分組 Y 數據的圖形哈拉·贊,
非常感謝您的及時回复。
關於您的評論:
1. 是的,我昨晚得出了同樣的結論,並且花了一個令人沮喪的上午和下午試圖重寫圖形腳本的某些部分以使其執行我想要的操作。 然而,由於我的編程經驗非常少,所以我並沒有走得太遠! 我已經弄清楚了 95% 的不同代碼部分的用途,但我無法重寫任何內容或添加一行代碼來擺脫 X 組標籤。 下面我粘貼了最新圖表的腳本(抱歉,我不知道如何將其保存到單獨的文件中)。 我嘗試過採用 X 組變量聲明的“名稱”部分,但它不起作用。 我還嘗試添加一條類似於消除圖形標題的調度行,但這也不起作用。 你能幫我解決這個問題嗎? 我一直在避免學習編程,因為我有很多工作要做,並且花了一個月左右的時間(非常有希望!)來學習編程語言似乎花了太多時間,但我已經到了我認為這是不可避免的地步,學習一些基本腳本以便能夠修改圖形生成器中現有的可用圖形會有多困難? 您對此有什麼建議嗎?
Graph Builder(
Size( 868, 525 ),
Show Footer( 0 ),
Lock Scales( 1 ),
Auto Stretching( 0 ),
Variables(
X( :Name( "Leaf Age Class (age in cummulative weeks)" ) ),
Y( :thickness ),
Group X( :Name( "SU/SHCanopyPos" ), Levels( 2 ) ),
Overlay( :tree )
),
Elements( Line( X, Y, Legend( 5 ), Row order( 0 ), Summary Statistic( "Mean" ) ) ),
SendToReport(
Dispatch(
{},
"Leaf Age Class (age in cummulative weeks)",
ScaleBox,
{Show Major Ticks( 0 ), Show Minor Ticks( 0 ), Rotated Labels( "Automatic" )}
),
Dispatch( {}, "thickness", ScaleBox, {Min( 0.12 ), Max( 0.46 ), Inc( 0.05 ), Minor Ticks( 1 )} ),
Dispatch( {}, "", ScaleBox, {Min( 0 ), Max( 0 ), Inc( 1 ), Minor Ticks( 0 )} ),
Dispatch( {}, "", ScaleBox( 2 ), {Min( 0 ), Max( 0 ), Inc( 1 ), Minor Ticks( 0 )} ),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
5,
Properties( 0, {Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 1, {Line Color( -16715009 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 2, {Line Color( 73 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 3, {Line Color( 24 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 4, {Line Color( -16739840 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 5, {Line Color( 36 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 6, {Line Color( 14 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 7, {Line Color( 0 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 8, {Line Color( 75 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 9, {Line Color( 1 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 10, {Line Color( 20 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} ),
Properties( 11, {Line Color( 42 ), Marker( "FilledCircle" ), Marker Size( "Medium" ), Fill Color( 0 )} )
)}
),
Dispatch( {}, "400", LegendBox, {Set Title( "Tree" )} ),
Dispatch( {}, "graph title", TextEditBox, {Set Text( "" )} ),
Dispatch( {}, "Y title", TextEditBox, {Set Text( "Leaf Thickness (mm)" )} ),
Dispatch( {}, "Graph Builder", FrameBox, {Marker Size( 2 ), Line Width Scale( 3 )} ),
Dispatch( {}, "Graph Builder", FrameBox( 2 ), {Marker Size( 2 ), Line Width Scale( 3 )} )
)
);
2. 非常感謝 Unicode 提示,它完成了工作。
3. 我嘗試將 Canopy 和 Leaf Age 嵌套在一起,但不喜歡結果,因為它連接了圖表。 既有陽葉又有陰葉的樹最終會出現一根連續的長線,陽線和陰線連在一起,這讓事情變得混亂。 因此,我所做的是將葉齡等級 O/S1 的兩個不同年齡(以周為單位)放在一起,如下圖所示。

一如既往地非常感謝您的幫助。
張柏芝
回复:使用圖形生成器創建帶有分組 Y 數據的圖形幹得好,塞西莉亞,從我的簡短描述中弄清楚了所有這些。
1. 我認為沒有辦法在實時視圖中關閉 Group X 標籤。 您可以右鍵單擊並將其移至底部,也可以在“首選項”>“平台”>“圖形生成器”中更改其樣式。 或者,您可以記錄圖表,這會形成死視圖,然後使用“fat plus”選擇工具刪除其中的一部分。
2. JMP 沒有上標樣式,但上標數字有特殊的 Unicode 字符,您可以在名稱中使用這些字符。 如果該論壇支持的話,這裡有一個示例:m²。
3. X 軸在分組級別內是相同的(以便允許跨組進行視覺比較)。 但是,您可以在 X 軸上將 Canopy 和 Leaf Age 嵌套在一起。 在這種情況下,缺失的子級別將被省略,這聽起來像你想要的。
回复:使用圖形生成器創建帶有分組 Y 數據的圖形哈拉·贊,
非常感謝您的建議,它們很準確。 在你和傑夫的幫助下,我幾乎已經完成了我想要創建的圖表。 下面是我到目前為止得出的圖表:

關於這些圖表我還有三個問題:
1. 如何擺脫X Group傳奇“SU/SHCanopyPos”? 我嘗試過雙擊並右鍵單擊圖例並使用腳本(用我不存在的編程技能!),但我找不到擺脫這個圖例的方法。
2. 如何在 Y 圖例中為某些文本(ei 單位,例如 m2)添加上標?
3. 我認為這個問題有點棘手:正如您在 X 分組中看到的那樣,在我將“以周為單位的年齡”數據連接到葉齡類別後,我最終得到了兩個單獨的 O/S1 年齡類別。 這是因為該年齡段的陽葉壽命(61 週)比陰葉(79 週)短。 有沒有一種方法可以讓我為每個頂篷位置只獲得一個 O/S1 年齡級別,但每個級別都有正確的“週齡”?
最後,我使用列切換器來創建類似的圖表,但不太喜歡它,我發現它有點麻煩。 因此,我嘗試了腳本選項,發現它更加直接。
再次非常感謝您的幫助,
張柏芝
回复:使用圖形生成器創建帶有分組 Y 數據的圖形嗨塞西莉亞,
為了將所有樹放在一張圖上,您可以將 Tree 放入 Overlay 槽中(確保 Tree 列被標記為名義型,因為否則連續變量可能會被分箱)。 那麼 Canopy 變量必須位於 X 組或 Y 組插槽之一。
如果你真的想要全部對於一個圖中的線條,您可以創建一個新變量來連接 Tree 和 Canopy,然後用該變量進行覆蓋。 為此,請創建一個新的字符列並為其指定一個連接其他兩列的公式。 就像是:樹|| “”|| :天篷。 “||”是文本連接操作。
您可以使用類似的方法附加樹齡值: :年齡段 || "(" || Char(:以周為單位的年齡) || ")"
您可以通過將“值順序”屬性添加到“列信息”對話框中的“Canopy”列來控制 SU/SH 順序。
要創建大量相似的圖形,您可以使用列切換器(在紅色小三角 > 腳本 > 列切換器下)以交互方式執行此操作,或使用 JSL 腳本以編程方式執行此操作(紅色小三角 > 腳本 > 保存到腳本窗口,然後編輯 Y 名稱)。
xan
回复:使用圖形生成器創建帶有分組 Y 數據的圖形你好,傑夫,
非常感謝您的回復以及您花時間創建示例圖表,並對我在原始帖子中沒有提供足夠的信息表示歉意。 你的圖表實際上很好地說明了我遇到的問題。 以您的圖表為例:
1. 感謝您提供有關在陽光和陰影葉冠位置使用疊加角色的提示,這解決了一個問題。 我一直在圖表左側對不同的樹使用 Y 組角色,這給了我一個看起來像你的圖表,但水平排列而不是垂直排列。 我已經使用覆蓋角色更新了我的圖表,如下所示:

但是,我希望以上內容能夠:
1. 是一個單獨的圖,而不是每棵樹的圖。
2. 我想在括號中添加每個葉齡類別代表的等效週數,例如 Y1(1)、Y2(2) 等。 我將此數據放在數據表的單獨列中,如何在 JMP Pro 中連接兩個或更多列?
2.我還重新創建了您的第二張圖(我非常喜歡這張圖,因為它比前一張圖要少一些),如下所示:

我也想要上面的:
1. 成為一張圖,而不是每棵樹一張圖
2. 切換座艙蓋位置的順序,使 SU 在左側,SH 在右側。 我已經顛倒了 X 和 Y 軸的順序,但找不到 X 和 Y 分組角色的此選項。
在組織圖表以正確顯示信息後,我想找到一種創建大量相似圖表但僅更改 Y 軸的方法。
希望以上內容能夠解答我的疑問,再次感謝您的幫助。
張柏芝
回复:使用圖形生成器創建帶有分組 Y 數據的圖形嗨,CCHB,
我不確定你到底在找什麼。
我模擬了一些數據並將其附加在此處,以便您可以看到我開始的內容。
這是我使用圖表頂部的 X Group 角色創建的圖表。 這將為您提供每棵樹的一個圖表。
我還在“覆蓋”角色中使用“陽光”或“陰影”列,為同時擁有這兩種顏色的樹獲取一根用於陽光的線和一根用於陰影的線。

或者,您可以使用圖表右側 Y 組角色中的“陽光”或“陰影”列來獲取此信息。

如果我沒有猜對,請更完整地描述您想要什麼系列的圖表,我們可以嘗試向您展示如何創建它們。
-傑夫