In qualche sessione con @giuliano Mi sono spiegato come rendere i grafici delle mappe di calore più attraenti aggiungendo alcuni bordi attorno alle celle.
Altre opzioni, come il modello, possono essere controllate tramite il pannello di controllo a sinistra.

Questo purtroppo no - deve essere applicato facendo clic con il tasto destro nel grafico/Personalizza... - e separatamente per ogni sottotrama.

Da un lato, questo è bello perché ogni sottotrama può essere configurata individualmente - dall'altro: questo può richiedere del tempo.
Se sono presenti più sottotrame aperte, come posso modificare tutte le sottotrame contemporaneamente e come posso modificare l'impostazione, in modo tale che (quando la tabella dei dati viene aggiornata e vengono visualizzate nuove sottotrame) le nuove sottotrame iniziano con linewidth=1?
La maggior parte di questi comandi clic destro possono essere trasmessi a tutte le sottotrame premendo CTRL.
Ma per Personalizza ... questo non sembra essere possibile.
Un trucco consiste nel rimuovere tutte le sottotrame rimuovendo le colonne dal gruppo X/Y, Wrap/Pages, applicare LineWidth e quindi aggiungere nuovamente le colonne alle rispettive DropZones. Ma ci vuole del tempo.
Un altro trucco:
Invia il comando a tutti i FrameBox del Graph corrente tramite JSL.
Ma poi c'è ancora il problema quando compaiono nuove sottotrame (senza i bordi).
Qualcuno usa mappe di calore con bordi attorno alle celle? E consigli su come facilitarne l'utilizzo?

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 ) )}
)
)
)
Forse la personalizzazione copia+incolla funziona in questo caso? Fare clic destro sul grafico -> Modifica -> Copia personalizzazioni. Quindi vai su un altro frame e lo stesso ma Incolla personalizzazioni (penso che tu possa anche trasmetterlo con Ctrl).
CIAO @hogi ,
dici che un'opzione è:
Invia il comando a tutti i FrameBox del grafico corrente tramite JSL.
Se non so quali saranno i valori del Gruppo X, come posso farlo?
Presumo di poterlo fare inviando un messaggio ai Framebox qualcosa del genere (dove gb1 è un riferimento al Graph Builder):
bordercode = "HexSeg( 1 ), {Line Width( 1 )}";
fnDef = Expr(
(gb1 << xpath( "//FrameBox" )) << DispatchSeg( __aa__ )
);
Substitute Into( fnDef, Expr( __aa__ ), parse( bordercode ) );
Parse( fnDef );Ma ricevo il seguente errore:
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)}Quindi presumo che sto formattando il messaggio in modo errato. Ho provato varie combinazioni, con e senza "Parse" ecc. Ma senza fortuna.
Grazie per eventuali suggerimenti!
fbs =current report() << xpath( "//FrameBox" );
fbs << {DispatchSeg( HexSeg( 1 ), Line Width( 1 ) )}