在 JMP 18 中,
我有一組按類別分組的資料。 X 軸保存類別(字元),Y 軸是十六進位的值。
我有三列數據:
1) 原始值為十六進位
- 字元名義
- :mv
- 例如0x066F
2):mv 轉換為十進位數
- 連續數字格式
- :mv_number
例如 1647
3) :mv_number 轉換回十六進制,但沒有 0x
- 字元 - 名義
- :mv_hex_label
例如 066F
有沒有辦法繪製這些數據的圖表,以便 Y 軸上的刻度標記採用十六進制,並且按數字順序排列,而不是按字母順序排列?
您也可以查看顯示十六進位值,然後使用值排序列屬性來設定圖表中的順序。
作為第三個選項,使用十六進位標籤,並將數字列拖曳到此放置區 - 用於排序。
也可以透過右鍵/按...排序/其他...來完成相同的操作。
只需幾秒鐘 - 與條目數量無關。

閱讀所有三個建議讓我大致找到了答案。謝謝你!
我最終所做的是使用原始資料列“mv”來設定 Y 軸。然後,我將十進位版本的資料拖曳到 Y 軸旁邊,並將其放在「排序依據」部分:

這確實正確地排列了值的順序。
現在,我唯一的遺憾是我已經失去了規模感。像 03DB 這樣的值就在 0668 旁邊。這失去了很多關於表現出雙模態的數據點的直覺。
在這裡,您可以看到資料在一個區域通過,而在其他區域失敗:

由於精確的十六進制值並不重要,我認為我要做的是探索創建參考線,讓我知道 0x100、0x800、0xF00 在哪裡...
要添加一些結構,您可以在 Y 軸上使用嵌套層級:

dt = New Table( "Hex",
Add Rows( 20 ),
New Column( "Hex",
Character,
Set Values(
{"0x0EB6", "0x00E0", "0x0052", "0x0059", "0x0052", "0x0037", "0x002E",
"0x0025", "0x0C74", "0x0C6B", "0x0C5E", "0x0C55", "0x0C2E", "0x0C19",
"0x0BE7", "0x0B9A", "0x0B8E", "0x0B53", "0x0B30", "0x00B5"}
)
),
New Column( "Hex Group", Character, "Nominal", Formula( Substr( :Hex, 1, 4 ) ) ),
New Column( "decimal",
Formula( Hex To Number( Substr( :Hex, 3 ) ) )
)
);
dt << Graph Builder(
Variables(
X( :decimal ),
Y( :Hex Group, Order By( :decimal, Ascending) ),
Y( :Hex, Position( 1 ), Order By( :decimal, Ascending ) ),
Color( :Hex Group )
),
Elements( Bar( X, Y( 1 ), Y( 2 ) ) )
);