如何按另一个列值对 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 轴进行排序使用图形生成器时,所需要做的就是将要作为轴排序依据的变量拖动到轴的排序依据区域,如下所示

或者,您可以按排序变量(年龄)对数据表进行排序,然后为“名称”列设置“列属性”、“行顺序级别”,然后“名称”变量轴使用的顺序将是在“名称”中找到名称的顺序。数据表。