Annotazioni al di fuori dell'area del grafico: posizione e annotazioni non copiate con il graficoAnnotazioni al di fuori dell'area del grafico
Se annoti (utilizzando Strumenti>Annota) all'interno dell'area del grafico, quel testo fa parte del grafico quando viene copiato: sembra che un'annotazione all'esterno dell'area del grafico non venga copiata con il grafico.
Quello che vorrei è una singola riga di codice che potrei inserire in ogni script che annoterebbe N in un testo piccolo in basso a destra di ogni grafico (sotto l'asse X) e verrebbe copiato con il grafico.
Lo pseudocodice sarebbe qualcosa di simile a Text (, “n=” || char())
Quindi più sottodomande:
- C'è un trucco per ottenere annotazioni (tramite Strumenti> Annota) che copiano con un grafico?
- Quale codice JSL usi per posizionare il testo in basso a destra sullo sfondo di un grafico? (ad esempio, c'è un modo per definire l'origine in basso a destra?)
- Quale codice JSL usi per ottenere il numero di righe non escluse in una tabella? Sembra che questo dovrebbe essere ovvio, (qualcosa come Rows() - Excluded Rows()), ma non lo vedo...
JMP 17, macOS
Mac OSPersonalizzazione di massaRe: Annotazioni al di fuori dell'area del grafico: posizione e annotazioni non copiate con il graficoBello grazie!
Re: Annotazioni al di fuori dell'area del grafico: posizione e annotazioni non copiate con il graficoSì, c'è un modo per metterlo sotto l'area del grafico, supponendo che tu abbia JMP 17 e supponendo che tu stia lavorando con Graph Builder invece di Fit Y by X Platform. Il trucco è aggiungere una casella didascalia, quindi impostarla come tabella degli assi, quindi sovrascrivere le impostazioni predefinite eliminando tutte le etichette tranne una (inoltre, ho dovuto modificare le etichette di spunta in "Short Divider" per mostrare ogni etichetta in una tabella di contingenza). Questo può essere fatto anche tramite scripting; esempio sotto.


dt = open ("$SAMPLE_DATA\Big Class.jmp");
//Caption box as regular axis table
graph_one = dt << Graph Builder(
Size( 534, 464 ),
Show Control Panel( 0 ),
Variables( X( :sex ), Y( :age ) ),
Elements(
Mosaic( X, Y, Legend( 6 ) ),
Caption Box(
X,
Y,
Legend( 7 ),
Summary Statistic( "N" ),
Location( "Axis Table" )
)
),
SendToReport(
Dispatch(
{},
"sex",
ScaleBox,
{Label Row( 1, Tick Mark Style( "Short Mark" ) ),
Label Row( 2, Tick Mark Style( "Short Divider" ) )}
)
)
);
//overwritten axis label with custom number (500)
graph_two = dt << Graph Builder(
Size( 534, 464 ),
Show Control Panel( 0 ),
Variables( X( :sex ), Y( :age ) ),
Elements(
Mosaic( X, Y, Legend( 6 ) ),
Caption Box(
X,
Y,
Legend( 7 ),
Summary Statistic( "N" ),
Location( "Axis Table" )
)
),
SendToReport(
Dispatch(
{},
"sex",
ScaleBox,
{Label Row( 1, Tick Mark Style( "Short Mark" ) ),
Label Row(
2,
{Tick Mark Style( "Short Divider" ),
Tick Mark( Label( "18" ), Label( "" ) ), //<----here
Tick Mark( Label( "22" ), Label( "500" ) )} //<--here
)}
)
)
);
Re: Annotazioni al di fuori dell'area del grafico: posizione e annotazioni non copiate con il graficoGrazie! Funziona bene per inserire il numero nel grafico stesso (esempio sotto). C'è un modo per metterlo sotto l'area del grafico?
Sembrerebbe che sia in basso a destra di LineupBox (o AxisBox), ma non riesco a far funzionare il tuo approccio con quelli. Suggerimenti?

Re: Annotazioni al di fuori dell'area del grafico: posizione e annotazioni non copiate con il graficoNon sono sicuro della domanda 1, ma ecco uno script che utilizza << Aggiungi script grafico per aggiungere testo all'angolo in basso a destra dei costruttori di grafici
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Variables(X(:weight), Y(:height), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)), Line Of Fit(X, Y, Legend(11)))
);
Report(gb)[FrameBox(1)] << Add Graphics Script(
included_rows = N Rows(dt) - N Items(dt << Get Excluded Rows());
Text Color("Black");
Text(Right Justified,
{X Origin() + X Range(), Y Origin()},
Eval Insert("n=^included_rows^");
);
);

Dovresti essere in grado di trasformare quello script in un'espressione/funzione/componente aggiuntivo che puoi riutilizzare facilmente.