你好 -
我希望图中 x 轴上的值顺序按升序排列。 问题是这些值是字母数字字符串,只有最后 3 个字符指示顺序。
例如,我希望在绘图上按从左到右的顺序查看这些内容。
1:YRFCA1
2:YRTCB1
3:YRACB2
4:YRTCC0
行和值顺序级别以不同的方式排列数据。
我可以对上面的值进行子字符串处理,并在订购它们之前仅关注最后 3 个字符,但不确定如何在图中显示整个 6 个字符的字符串。
感谢您提供有关如何在 JSL 中实现此功能的意见。
谢谢!
这篇帖子最初是用 English (US) 书写的,已做计算机翻译处理。当您回复时,文字也会被翻译成 English (US)。
也许是这样的。 我在 GUI 中创建了转换列,然后保存了它。 右键单击要转换的变量(在列选择器中),选择“转换”->“公式”。 然后将新的变换变量拖放到图形生成器中。
Graph Builder(
Size( 893, 823 ),
Show Control Panel( 0 ),
Variables(
X( :name ),
Y(
Transform Column(
"Transform[name]",
Character,
Nominal,
Formula(
Right( :name, 3 ) || "_" || Left( :name, Length( :name ) - 3 )
)
)
)
),
Elements( Points( X, Y, Legend( 8 ) ) )
);
Last three letters moved to front of name
这篇帖子最初是用 English (US) 书写的,已做计算机翻译处理。当您回复时,文字也会被翻译成 English (US)。
我按最后 3 个字符对表进行排序(首先获取最后 3 个字符的子字符串),然后设置长文本列“值排序”的属性。
Names default to here(1);
dt=New Table( "order by another col",
Add Rows( 4 ),
New Column( "Label",
Character,
"Nominal",
Set Values( {"YRFCA1", "YRTCB1", "YRACB2", "YRTCC0", "YAAAA4"} )
),
New Column( "Last 3",
Character,
"Nominal",
Formula( Right( :Label, 3 ) ),
),
);
dt << sort(replace table(1), by(:Last 3));
values=dt:Label << get values;
dt:Label << set property ("Value Ordering", values);
这篇帖子最初是用 English (US) 书写的,已做计算机翻译处理。当您回复时,文字也会被翻译成 English (US)。
您还可以通过 JSL“强制”JMP 使用非数字列的排序,但这可能是一个错误而不是功能,因此使用时可能有点冒险:
Names Default To Here(1);
dt = New Table("table",
Add Rows(5),
New Column("Col", Character, "Nominal", Set Values({"YRFCA1", "YRTCB1", "YRACB2", "YRTCC0", "YAAAA4"})),
New Column("order", Character, "Nominal", Formula(Right(:Col, 3)))
);
dt = Graph Builder(Variables(X(:Col, Order By(:order, Ascending))), Elements(Points(X, Legend(34))));
您也可以使用两个 x 轴标签行直接从图形生成器执行此操作:
然后,如果您愿意,可以打开 x 轴设置,然后对其他标签的设置进行一些修改以隐藏它(按本例顺序):
你最终会得到:
然后您可以更改 x 轴以删除顺序 /。
这篇帖子最初是用 English (US) 书写的,已做计算机翻译处理。当您回复时,文字也会被翻译成 English (US)。