如何按另一個列值對 x 軸進行排序例如,我有 3 列:
姓名 年齡 分數:
傑森 21 98
愛麗絲 19 67
戴夫 36 89
約翰福音 28 70
我想繪製 x: 姓名和 Y: 分數,但我也想按年齡對 X 軸(姓名)進行排序。
非常感謝你的幫助!
回复:如何按另一個列值對 x 軸進行排序我認為創建一個連續列將起到如下作用
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
dt << New Column("lotID by Site", Character, Formula(char(:SITE)||"_"||:lot_id) );
// Set value ordering to :name after mean :age
Summarize( g = by( :Name("lotID by Site") ), m = Mean( :PNP1 ) );
:Name("lotID by Site") << Set Property( "Value Ordering", Eval( g[Rank Index( m )] ) );
// Variability chart with names grouped by sex ordered after age
Variability Chart(Y(:NPN1), X(:Name("lotID by Site")), by (:SITE));如果有人可以分享更優雅的解決方案,我將不勝感激。
回复:如何按另一個列值對 x 軸進行排序抱歉,性別組示例不太好,因為每個組中幾乎沒有(或沒有)相似的名稱。
這是基於半導體表的相同示例:
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
// Set value ordering to :name after mean :age
Summarize( g = by( :lot_id ), m = Mean( :PNP1 ) );
:lot_id << Set Property( "Value Ordering", Eval( g[Rank Index( m )] ) );
// Variability chart with names grouped by sex ordered after age
Variability Chart(Y(:NPN1), X(:SITE, :lot_id));結果如下 Var 圖表(所有站點都有相同的 lot_id 訂單) - 我認為這是錯誤的。
如何使用 jsl 為 Var 圖表中的每個站點繪製 PNP1 的 lot_id 訂單。
希望我的要求更清楚。
我更喜歡使用
Variability Chart(Y(:NPN1), X(:SITE), By (:lot_id));
並不是
Variability Chart(Y(:NPN1), X(:SITE, :lot_id));
另外,我可以使用之前重播中的圖形生成器來執行此操作的聲明是錯誤的,我現在明白了。
謝謝。


回复:如何按另一個列值對 x 軸進行排序不確定我明白你需要什麼,但同樣的方法可以用於變異圖。 如果按附加變量分組,則應在每個組中正確應用值排序。
以下是基於 Big Class 示例表的示例:
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Set value ordering to :name after mean :age
Summarize( g = by( :name ), m = Mean( :age ) );
:Name << Set Property( "Value Ordering", Eval( g[Rank Index( m )] ) );
// Variability chart with names grouped by sex ordered after age
Variability Chart(Y(:height), X(:sex, :name));
回复:如何按另一個列值對 x 軸進行排序嗨,大家好,
知道如何按組使用 ms 建議嗎?
對於上面的例子,假設我喜歡通過 gander 繪製單向圖表。
我可以使用圖形生成器來完成此操作,但我喜歡使用變異性圖表。
Oneway(Y(:Name("Score:")), X(:Name), By(:Name("Gander"));//With Graph Builder
Graph Builder(
Size( 800, 500),
Variables(
X( :name, Order By( :age, Ascending, Order Statistic( "Mean" ) ),
....
Group X( :Gender, N View Levels( 2 ), First View Level( 2 ) ),
...
回复:如何按另一個列值對 x 軸進行排序謝謝! 有用!
回复:如何按另一個列值對 x 軸進行排序我認為列屬性“值排序”正是您所需要的。 可以使用列對話框或 jsl 手動設置(下面的示例)。
// Example Table
New Table("test",
Add Rows(4),
New Column("Name",
Character,
Set Values({"Jason", "Alice", "Dave", "John"})
),
New Column("Age",
Set Values([21, 19, 36, 28])
),
New Column("Score:",
Set Values([98, 67, 89, 70])
)
);
// Plot Score by Age
Oneway(Y(:Name("Score:")), X(:Name));
// Set value ordering to Name after mean Age
Summarize( g = by( :Name ), m = Mean( :Age ) );
:Name << Set Property( "Value Ordering", Eval( g[Rank Index( m )] ) );
// Plot again!
Oneway(Y(:Name("Score:")), X(:Name));回复:如何按另一個列值對 x 軸進行排序使用圖形生成器時,所需要做的就是將要作為軸排序依據的變量拖動到軸的排序依據區域,如下所示

或者您可以按排序變量(年齡)對數據表進行排序,然後為“名稱”列設置“列屬性”、“行順序級別”,然後“名稱”變量軸使用的順序將是在“名稱”中找到名稱的順序。數據表。