在某些會議中@朱利安我學習瞭如何通過在單元格周圍添加一些邊框來使熱圖更具吸引力。
其他選項(例如圖案)可以通過左側的控制面板進行控制。

不幸的是,這不是 - 它必須通過右鍵單擊圖表/自定義來應用... - 並分別針對每個子圖。

一方面,這很好,因為每個子圖都可以單獨配置 - 另一方面:這可能需要一些時間。
如果有多個打開的子圖,如何一次更改所有子圖 - 以及如何更改設置,以便(當更新數據表並且出現新子圖時)新子圖以 linewidth=1 開頭?
大多數此類右鍵單擊命令都可以通過按 CTRL 鍵將其廣播到所有子圖。
但對於自定義...這似乎不可能。
一個技巧是通過從 X/Y 組、換行/頁面中刪除列來刪除所有子圖,應用 LineWidth,然後再次將列添加到相應的 DropZones。 但這需要一些時間。
另一個技巧:
通過 JSL 將命令發送到當前 Graph 的所有 FrameBox。
但是當新的子圖出現(沒有邊框)時仍然存在問題。
有人使用帶有單元格邊框的熱圖嗎? 以及建議如何方便使用?

Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
Size( 454, 256 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Summary Statistic( "Median" ),
Graph Spacing( 4 ),
Variables( X( :height ), Y( :weight ), Group X( :sex ), Overlay( :sex ) ),
Elements( Heatmap( X, Y, Legend( 3 ), Bin Shape( "Hexagonal" ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
{DispatchSeg( HexSeg( 1 ), Line Width( 1 ) )}
)
)
)
也許自定義復制+粘貼在這種情況下有效? 右鍵單擊圖表 -> 編輯 -> 複製自定義。 然後轉到其他框架並進行相同的操作,但粘貼自定義(我認為您也可以使用 Ctrl 來廣播此內容)。
你好@hogi ,
你提到一種選擇是:
透過 JSL 將命令傳送到目前 Graph 的所有 FrameBox。
如果我不知道 X 組值是多少,我該怎麼做?
我想我可以透過向 Framebox 發送類似這樣的訊息來做到這一點(其中 gb1 是對圖形生成器的引用):
bordercode = "HexSeg( 1 ), {Line Width( 1 )}";
fnDef = Expr(
(gb1 << xpath( "//FrameBox" )) << DispatchSeg( __aa__ )
);
Substitute Into( fnDef, Expr( __aa__ ), parse( bordercode ) );
Parse( fnDef );但我收到以下錯誤:
Unexpected ",". Perhaps there is a missing ";" or ",".
Line 1 Column 13: HexSeg( 1 )►, {Line Width( 0.5 )}
The remaining text that was ignored was
,{Line Width(0.5)}所以我認為我的消息格式不正確。 我嘗試過各種組合,有或沒有“解析”等,但沒有運氣。
感謝您的任何建議!
fbs =current report() << xpath( "//FrameBox" );
fbs << {DispatchSeg( HexSeg( 1 ), Line Width( 1 ) )}