基於最後 3 個字元值的訂單級別你好 -
我希望圖中 x 軸上的值順序按升序排列。 問題是這些值是字母數字字串,只有最後 3 個字元指示順序。
例如,我希望在繪圖上以從左到右的順序查看這些內容。
1:YRFCA1
2:YRTCB1
3:YRACB2
4:YRTCC0
行和值順序等級以不同的方式排列資料。
我可以對上面的值進行子字串處理,並在訂購它們之前僅關注最後 3 個字符,但不確定如何在圖中顯示整個 6 個字符的字串。
感謝您提供有關如何在 JSL 中實現此功能的意見。
謝謝!
品質和工藝工程回覆:基於最後 3 個字元值的訂單級別您也可以透過 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 軸以刪除順序 /。
回覆:基於最後 3 個字元值的訂單級別這兩種方法都非常有幫助。 感謝克雷格和採埃孚!
回覆:基於最後 3 個字元值的訂單級別好的!
回覆:基於最後 3 個字元值的訂單級別我按最後 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);
回覆:基於最後 3 個字元值的訂單級別也許是這樣的。 我在 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 nameLast three letters moved to front of name最後三個字母移至姓名前面