Ri: Come posso modificare tutti gli assi X in un generatore di grafici in scala logaritmicaUn modo per gestire questo problema consiste nell'utilizzare Standardizza attributi per modificare la proprietà della colonna dell'asse.
Per modificare tutti gli assi da registrare:
- Vai alla tabella dei dati e seleziona le colonne per le quali desideri modificare gli assi
- Selezionare Cols=>Standardizza attributi
- Selezionare Proprietà colonna=>Asse
- Fare clic su Imposta impostazioni asse predefinite
- Cambia la scala da lineare a log
- Fare clic su OK
Gli assi per tutti gli assi X nel grafico verranno modificati in una scala logaritmica
Ri: Come posso modificare tutti gli assi X in un generatore di grafici in scala logaritmicaGrazie mille per il suggerimento.
Tuttavia, il mio utilizzo di Graph Builder è piuttosto dinamico e spesso è difficile prevedere quali colonne verranno utilizzate per il tracciato.
Esiste uno script che posso utilizzare per convertire gli assi X già utilizzati da una figura di Graph Builder?
Ad esempio, so di poterlo fare per la matrice del grafico a dispersione con
For( i = 100, i < 200, i++,
(Current Window() << XPath( "//ScaleBox[@charID=" || Char( i ) || "]" )) << Revert Axis
<< {Scale( "Log" ), Inc( 1 ), Minor Ticks( 1 )}
)
Ri: Come posso modificare tutti gli assi X in un generatore di grafici in scala logaritmicaNon è necessario iterare. L'elenco delle caselle di visualizzazione distribuirà automaticamente i messaggi che riceve a ciascuno dei suoi elementi, quindi devi solo assicurarti che l'elenco sia corretto. Per esempio:
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Fitness.jmp" );
sm = dt << Scatterplot Matrix(
Y( :Age, :Weight, :Oxy, :Runtime, :RunPulse, :RstPulse, :MaxPulse ),
Matrix Format( "Lower Triangular" )
);
(Report( sm ) << XPath( "//AxisBox" ))
<< Revert Axis
<< Scale( "Log" )
<< Inc( 10 )
<< Minor Ticks( 0 );
Ri: Come posso modificare tutti gli assi X in un generatore di grafici in scala logaritmicaIl mio problema è che voglio mantenere gli assi y in scala lineare ma modificare gli assi x in scala logaritmica. Senza iterazione, temo che entrambi gli assi X/Y passeranno alla scala logaritmica.
A proposito, un approccio simile funziona per Graph Builder?
Ri: Come posso modificare tutti gli assi X in un generatore di grafici in scala logaritmicaQuesto approccio funziona ancora. Sottoscrivi prima l'elenco per ottenere un nuovo elenco con solo le caselle degli assi che desideri modificare, quindi invia i messaggi a quell'elenco di destinazione. In questo modo è ancora molto più semplice e pulito del looping esplicito.
Ecco una modifica al mio primo esempio per illustrare il nuovo approccio:
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Fitness.jmp" );
sm = dt << Scatterplot Matrix(
Y( :Age, :Weight, :Oxy, :Runtime, :RunPulse, :RstPulse, :MaxPulse ),
Matrix Format( "Lower Triangular" )
);
// change X axes only in Scatterplot Matrix
axes = Report( sm ) << XPath( "//AxisBox" );
nAxes = N Items( axes );
// second half of list only
axes[((nAxes/2)+1)::nAxes] << Select; // Scale( "Log" );
Tuttavia, non funziona bene con Scatterplot Matrix, poiché tutte le colonne di dati tranne una vengono utilizzate nel ruolo X e Y e la logica interna cerca di mantenere le modifiche coerenti in entrambi i punti (ruolo X e Y).
Ri: Come posso modificare tutti gli assi X in un generatore di grafici in scala logaritmicaPoiché non riesco a trovare un modo per identificare gli assi X dagli assi Y, la mia soluzione attuale utilizza questo comando per impostare tutti gli assi sulla scala logaritmica e quindi ripristinare manualmente gli assi Y sulla scala lineare, che è molto più semplice dell'impostazione manuale della scala logaritmica .
( Current Window() << XPath( "//AxisBox" ) ) << Revert Axis << {Scale( "Log" ), Inc( 1 ), Minor Ticks( 1 )}
Come posso modificare tutti gli assi X in un generatore di grafici per registrare la scalaFare doppio clic sugli assi è un vero rompicapo.

Esplorazione e visualizzazione dei dati