我在單個報告中有雙變量、單向和圖形生成器圖表。 應用了行圖例,因此所有數據點都是具有特定顏色的字母數字。 行圖例是使用 JMP 默認配色方案製作的,我的圖表生成器圖表使用 JMP 默認配色方案作為其疊加圖例,但由於某種原因,它分配顏色的順序與其他圖表不同。 請參見下面的示例:
對於 LSW 對象,此可變性圖表按紅色、綠色、藍色、橙色的順序著色。

然而,圖形構建器的顏色順序為藍色、紅色、綠色、紫色,同時從行圖例中保留了正確的字母數字標籤。

我發現的唯一解決方法是將顏色屬性保存到 Beam_L1 columb,但問題是它不會在過濾器更改時自動重新計算(這可以更改 BEAM_L1 對象的數量)。 行圖例和圖形構建器顏色確實會隨過濾器自動更改,但不幸的是,它們使用不同的著色順序,即使它們都使用 JMP 默認配色方案。
我在相關話題:
在 Graph Builder 之外,JMP 會在需要兩種顏色時跳過綠色以避免常見的紅/綠顏色不足。 然而,Graph Builder 更動態一些,需要能夠在不改變前兩種顏色的情況下從兩種顏色變為三種顏色,因此它從一開始就重新排列它們(每組 3 種顏色都圍繞色輪旋轉)。這只會發生在帶有“JMP”標籤的顏色主題上,因此您可以通過使用不同的顏色主題來避免雙重排序。
就 exclude 的處理而言,沒有改變行為的選項。 我有時使用值顏色或添加虛擬值來繞過任何動態靈敏度。
使用與行圖例顏色(在所有其他圖表中使用)不同的邏輯對圖表生成器顏色的任何評論。 圖形生成器始終考慮排除的顏色行(即使它不在圖例中顯示那些排除的項目)並且沒有地方可以關閉它,而基於行圖例的著色您可以選擇考慮排除的行(但是與圖形生成器不同,在考慮排除的行時,即使在圖表日期中不存在,這些項目也會顯示在圖例中)
那麼有沒有辦法讓圖表生成器在分配顏色時不考慮排除的行?
設置值顏色似乎與 Graph Builder 顏色相匹配,但我的可變性圖表似乎具有由行圖例設置的自己的顏色。 他們都使用 JMP defualt 顏色主題,他們似乎以不同的方式對該主題進行採樣?
編輯:由於我不同的過濾需求,只要我不排除任何 BEAM_L1 值,似乎一切都匹配。 所以如果我沒有過濾(包括所有 beam_L1 值),顏色匹配。 但是,當我排除 BEAM_L1 時,變量圖表上的顏色會重置,因此第一個 BEAM_L1 始終為紅色,而圖形生成器上的顏色保持給定 BEAM_L1 的顏色,但是字母數字標籤會正確更改(可能是因為這是按行設置的傳奇)。
基本上,Graph Builder 顏色似乎總是考慮排除的行,而行圖例顏色在排除行時對顏色主題重新採樣。
如果將 BEAM_L1 的列屬性“Value Color”設置為您想要的顏色,然後啟動 Chart Builder,BEAM_L1 覆蓋圖表時使用的顏色即使在過濾時也會保留。
JMP 13.2.1
Names Default To Here( 1 );
dt = New Table( "class",
Add Rows( 40 ),
New Column( "Age",
Numeric,
"Ordinal",
Format( "Fixed Dec", 5, 0 ),
Set Property(
"Value Colors",
{12 = -13977687, 13 = -3780931, 14 = -4222943, 15 = -13596966, 16 = -2211217, 17 =
-10562780}
),
Set Values(
[12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 17, 17, 17]
)
),
New Column( "Height",
Numeric,
"Continuous",
Format( "Fixed Dec", 5, 0 ),
Set Values(
[59, 61, 55, 66, 52, 60, 61, 51, 60, 61, 56, 65, 63, 58, 59, 61, 62, 65, 63, 62, 63,
64, 65, 64, 68, 64, 69, 62, 64, 67, 65, 66, 62, 66, 65, 60, 68, 62, 68, 70]
)
)
);
dt << Graph Builder(
Variables( X( :age ), Y( :height ), Overlay( :age ) ),
Elements( Box Plot( X, Y, Legend( 6 ) ) ),
Local Data Filter(
Add Filter(
columns( :age ),
Where( :age == {12, 13, 14, 15} ),
Display( :age, Size( 160, 90 ), List Display )
)
)
);