
你好,
我正在創建按數值著色的熱圖。 但我無法按離散字串值進行著色。
在附加的資料表中,我嘗試建立由不同裝置著色的熱圖:我希望看到每個裝置具有特定顏色的地圖。 但我得到了漸層色。
如何更改此設定以獲得每個設備的特定離散顏色?
你好@薩米爾,
我當然理解這種挫敗感! 我想讓您知道,從事 Graph Builder 工作的開發人員也能理解這種挫敗感。 回顧一下,JMP 14(及更早版本)會為分類變數的值產生定量尺度,並在填充熱圖的單元格時使用這些顏色的地圖(以及這些顏色的平均值)。 JMP 15(將於 2019 年 9 月推出)的表現將有所不同:熱圖顏色角色中使用的名義變數和序數變數將被分類處理,並對分類變數的每個層級進行單獨的顏色控制。 當熱圖的任何單元格中有多個值時,並且這些行具有不同級別的類別變量,而單元格顏色將反映指定顏色的平均值。
以下是 14(及更早版本)的並排,以及 15 中行為的預覽:
@朱利安
獲得所需結果的一種方法是使用 JMP 圖形產生晶圓圖。

這是執行此操作的簡單 JSL
Names Default To Here( 1 );
dt = Current Data Table();
xrange = Col Max( :x ) - Col Min( :x );
yrange = Col Max( :y ) - Col Min( :y );
If(
xrange < yrange,
xsize = 1;
ysize = yrange / xrange;,
ysize = 1, xsize = xrange / yrange
);
Summarize( dt, devicesList = By( :Device ) );
colorList = {3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};
xMatrix = [0, 0, 0, 0];
yMatrix = [0, 0, 0, 0];
New Window( "Wafer Map",
Graph Box(
Y Scale( Col Min( :Y ), ySize * Col Max( :Y ) ),
X Scale( Col Min( :X ), xSize * Col Max( :X ) ),
For( i = 1, i <= N Rows( dt ), i++,
xMatrix[1] = xSize * :X[i];
yMatrix[1] = ySize * :Y[i];
xMatrix[2] = xMatrix[1];
yMatrix[2] = YMatrix[1] + ySize;
xMatrix[3] = xMatrix[1] + xSize;
yMatrix[3] = YMatrix[1] + ySize;
xMatrix[4] = xMatrix[1] + xSize;
yMatrix[4] = YMatrix[1];
color = colorList[Loc( devicesList, :Device[i] )[1]];
Fill Color( color );
Polygon( xMatrix, yMatrix );
)
)
)
;你好@朱利安,
首先,我很失望地發現這是 JMP 中的一個真正的限制。
您解決的問題是向前邁出的一步,但我無法使用此實現:散點圖很難控制點(正方形)的大小,就像您顯示的正方形之間有空格,給人的印像是有空設備彩色之間,...
總而言之,我需要找到另一種方法:(
謝謝你的提示。
你好@薩米爾
儘管熱圖可以使用分類顏色變量,但正如您所注意到的,它有時以一種不受歡迎的方式這樣做,即將顏色變量的級別視為數字並提供漸變。 有時,可以假定這些水平具有一定的維度,並且您有很多重疊的觀察結果,這*很有用,因為您可以在二維空間中找出半定量分類變量的一般分佈(並且因為熱圖對這些重疊點的值進行操作,需要對顏色變數進行一些計算,以便計算平均值)。
在這種情況下,我可能會選擇散點圖並將點更改為正方形,並增加標記大小。 這會產生以下結果。 有幫助嗎? (附上您的資料表和新腳本)
