如何在JSL中(在Graph Builder中)更改圖例名稱?我在CSV文件(很多列,很多行)中獲得了很多數據,並且正在JSL中使用基本模板來標準化圖形的生成。(重新縮放軸,重命名軸,標準化線條的顏色等。)平均而言,我每天平均可以得到一個CSV文件,因此我想將數據放入JMP數據表中,運行腳本並使用圖形輸出全部自動化。
默認情況下,我的JMP文件的標籤名稱為列標題,而作為圖例完全不提供信息。一種解決方法是重命名所有列,但我希望保留標籤名稱,因此可以直接在圖例設置中操作文本。(但是使用JSL完成,而不是手動完成。)
我可以輕鬆訪問圖例框,例如:
gbR = gb << Report; // gbR << Show Tree Structure;
s = gbR[legendbox(1)];
s << Set Title("new title");在所附的PNG中,您會看到這個想法。
我現在遇到的問題是如何訪問圖例框中的文本(標題除外),以便我可以操縱它並使用JSL對其進行更改。
我看到由圖形生成器生成的腳本說的是“傳奇模型”和“級別名稱”,但是我在嘗試的眾多事情中都沒有成功。
任何對此的指導將不勝感激。
如前所述,使用JSL,如何訪問圖例文本以將其從默認值更改為?
謝謝。
腳本編寫回复:如何在JSL中更改圖例名稱(在Graph Builder中)?圖例Box()的腳本編制索引中的詳細信息未顯示任何允許更改圖例中實際標籤的消息。但是,由於圖例中的值直接來自數據表中的值,因此您可以簡單地更改/重新編碼數據表中的值或設置“值標籤”列屬性。回复:如何在JSL中更改圖例名稱(在Graph Builder中)?感謝您確認我沒有錯過任何顯而易見的事情。
不幸的是,我看不到(或看不到)“價值標籤”如何實現我想要實現的目標。在某種程度上,我的目的是有效地修改列名,而不是操縱在列標題下方的行中找到的數據值。
如果我為一個簡單的表創建了圖例文字中的幾個值,如果給定列使用“設置名稱”,例如,“ Column(dt,1)<< Set Name(“ New name”);“這一行語法導致第1列數據的文本更新並成為“新名稱”。
我的實際數據圖具有“均值(…標籤名稱…)”類型的圖例文本。如果在我的實際數據中使用<< << Set Name,我仍然會遇到一個有問題的圖例文本,因為它包含“ Mean(…列名…)”。
關於如何操作給定列的圖例文本的任何想法都非常了解。也許我只是從頭開始創建一個圖例,以便可以訪問和操作這種“自製”圖例中的所有屬性。我希望它是腳本編寫的,而不是每次我製作一張新圖表(可能每天)時都需要人工注意的東西。
回复:如何在JSL中更改圖例名稱(在Graph Builder中)?在圖形生成器腳本中是否可以執行以下操作:
Graph Builder(
Variables( X( :age ), Y( :height ), Y( :weight, Position( 1 ) ) ),
Elements( Line( X, Y( 1 ), Y( 2 ), Legend( 4 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
4,
Level Name( 0, "abcd", Item ID( "Mean(height)", 1 ) ),
Level Name( 1, "efgh", Item ID( "Mean(weight)", 1 ) )
)}
),
Dispatch( {}, "400", LegendBox, {Set Title( "My Title" )} )
)
);回复:如何在JSL中更改圖例名稱(在Graph Builder中)?謝謝。是的,當然可以。我想我需要一個變量來捕獲圖例文本的所需名稱,因為我想到的是不同的圖形?
例如,按照示例Graph Builder語法:
_Legend1 = "abcd";
_Legend2 = "efgh";
如果是這樣,我是否需要使用以下內容來管理變量的使用?
Eval(
Substitute(
Expr(
最後,此選項是否可能是實現圖例文本更“直接”操縱的唯一方法?
回复:如何在JSL中(在Graph Builder中)更改圖例名稱?這是另一種可能性:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
Variables( X( :age ), Y( :height ), Y( :weight, Position( 1 ) ) ),
Elements( Line( X, Y( 1 ), Y( 2 ), Legend( 4 ) ) )
);
lgnd = gb << Get Legend Display;
item1 = lgnd << Get Item( 4, 1 );
item1 << Set Label("Line 1");
item2 = lgnd << Get Item( 4, 2 );
item2 << Set Label("Line 2");
“獲取項目”中的第一個數字是“圖形生成器”中“圖例”參數的值。第二個數字將成為該圖例的索引。有時候正確設置這些數字可能很棘手,因為我們並不總是顯示所有圖例。如果要查看圖例的完整列表,請轉到“圖例設置”。
回复:如何在JSL中(在Graph Builder中)更改圖例名稱?親愛的保羅,
在附加的PNG中,您會看到圖形生成器輸出,無論是否運行,我都會運行語法
lgnd = gb << Get Legend Display;
item1 = lgnd << Get Item( 4, 1 );
item1 << Set Label("Line 1");
item2 = lgnd << Get Item( 4, 2 );
item2 << Set Label("Line 2");我看到圖例中的文字沒有變化,我遵循語法的邏輯,但看不到任何影響。
在第二個PNG中,您將看到執行完完整語法後我所想的。
如果您仍然可以研究此問題,並讓我知道一種方法,我將不勝感激。謝謝,斯科特。
回复:如何在JSL中(在Graph Builder中)更改圖例名稱?抱歉。這是JMP 16中的新功能。我不知道它剛剛被添加,並且在JMP 15中不可用。您必須嘗試第一種方法,直到JMP 16可用。再次,對於錯誤信息,我深表歉意。