Come ottengo i contenitori di Scatterplot 3DCiao,
Quando rappresento i dati in un grafico a dispersione 3D, ripeto alcune azioni frequentemente. Ad esempio, cambio il tema del colore (colorbar), la dimensione dei punti, ecc. Le tabelle sono diverse ma le azioni sono le stesse e non si riferiscono a colonne specifiche, quindi suppongo che le azioni possano essere automatizzate.
Mi chiedo come farlo per i grafici che sono già aperti. Per 2d grahps posso usare, ad esempio, questo comando per fare riferimento al contenitore:
Window( Window name )[framebox( 1 )] << set background color( "gray" );
ma non posso usarlo in un 3D scatter.
Grazie,
David
Ri: Come posso ottenere i contenitori di Scatterplot 3DCiao @Perla ,
Scatterplot 3D utilizza un Display3DBox, quindi questo dovrebbe funzionare per fare riferimento a quell'oggetto e cosa userai per la maggior parte dei messaggi (impostazione di colori, marcatori, rotazione, rotazione, ecc.):
Window( Window name )[Display3DBox(1)]
Se è necessario impostare il colore di sfondo, in realtà si vorrà fare riferimento a SceneBox:
Window( Window name )[SceneBox(1)]<<BACKGROUND color=""></BACKGROUND>
Ecco un esempio completo in cui ho impostato sia i muri che lo sfondo blu:
Open( "$SAMPLE_DATA\Big Class.jmp" );
s3d = Scatterplot 3D( Y( :age, :height, :weight ), Frame3D( Set Grab Handles( 0 ) ) );
//view properties if you wish to see options
//show properties(Window( "Big Class - Scatterplot 3D" )[SceneBox(1)])
//show properties(Window( "Big Class - Scatterplot 3D" )[Display3DBox(1)])
Window( "Big Class - Scatterplot 3D" )[Display3DBox( 1 )] << Set Wall Color( 5 );
Window( "Big Class - Scatterplot 3D" )[Scene Box( 1 )] << Background color( blue );
Spero che questo possa essere d'aiuto!
@julian
Ri: Come posso ottenere i contenitori di Scatterplot 3DSe cambi i colori in modo interattivo e salvi lo script, Scatterplot 3D registrerà i colori direttamente come parte dello script:
Scatterplot 3D(
Y( :age, :height, :weight ),
Frame3D(
<STRONG>Set Wall Color( -16750758 ),</STRONG>
Set Grab Handles( 0 ),
Set Rotation( -52.9429431878029, -1.24217455677765, 22.838483399832 ),
<STRONG>Background Color( 144, 191, 4 )</STRONG>
)
);
Questa potrebbe essere la soluzione più semplice se si conoscono i colori desiderati all'avvio della piattaforma.
Ri: Come posso ottenere i contenitori di Scatterplot 3DCiao @julian ,
Grazie mille per la tua risposta. Display3DBox è molto utile per modificare molte proprietà.
Tuttavia, non riesco ancora a modificare la legenda della trama. Se salvo lo script, questo è il codice e appare sotto SendToReport (Dispatch (...)).
obj = Scatterplot 3D(
Y( :x, :y, :z ),
Coloring( :T composed 2 ),
Legend( 84 ),
Frame3D( Legend( 1 ), Set Grab Handles( 0 ), Set Rotation( -54, 0, 38 ) ),
SendToReport(
Dispatch(
{},
"100",
ScaleBox,
{Legend Model( 3, Properties( 0, {gradient( {Color Theme( "Spectral" )} )} ) )}
)
);
);Vuoi sapere un modo per accedere a queste proprietà simili a Finestra ( Nome della finestra ) [ Display3DBox ( 1 ) ] ?
Ri: Come posso ottenere i contenitori di Scatterplot 3DGrazie @danschikore , come dici tu la soluzione più semplice è cambiare le impostazioni predefinite in Preferenze. Tuttavia, cambiare le proprietà in uno script potrebbe essere utile per me in futuro.Ri: Come posso ottenere i contenitori di Scatterplot 3DCiao @Perla ,
Per dire alla piattaforma le opzioni di spedizione, è necessario un handle per l'oggetto scriptable (la piattaforma 3d di scatterplot stessa) piuttosto che la finestra del report. Possiamo usare << Get Scriptable Object per aiutarci qui. Una volta ottenuto tale handle, puoi inviare il messaggio di spedizione esatto che hai trovato quando hai salvato lo script. Ecco un esempio completo di ciò, incluse le precedenti personalizzazioni che ho mostrato:
Open( "$SAMPLE_DATA\Big Class.jmp" );
s3d = Scatterplot 3D( Y( :age, :height, :weight ), Coloring( :sex ), Legend( 17 ), Frame3D( Legend( 1 ) ) );
//view properties if you wish to see options
//show properties(Window( "Big Class - Scatterplot 3D" )[SceneBox(1)]);
//show properties(Window( "Big Class - Scatterplot 3D" )[Display3DBox(1)]);
//set colors, contolled in the report layer<BR />Window( "Big Class - Scatterplot 3D" )[Display3DBox( 1 )] << Set Wall Color( 5 );
Window( "Big Class - Scatterplot 3D" )[Scene Box( 1 )] << Background color( blue );
//find the scriptable object so that options can be dispatched
s3dFound = Window( "Big Class - Scatterplot 3D" )[Outline Box( 1 )] << Get Scriptable Object;
//Dispatch options by sending messages to that scriptable object
s3dFound << Dispatch(
{},
"100",
ScaleBox,
{Legend Model(
17,
Properties( 0, {Line Color( 73 ), Marker Size( 10 )}, Item ID( "F", 1 ) ),
Properties( 1, {Line Color( 45 ), Marker Size( 10 )}, Item ID( "M", 1 ) )
)}
);
@julian
Ri: Come posso ottenere i contenitori di Scatterplot 3DDovrei aggiungere, se usi uno script per generare l'output in primo luogo, avrai già un handle per la piattaforma (supponendo che lo hai fatto quando avvii la piattaforma). Nel mio esempio, questo è s3d. Tuttavia, se si dispone di una finestra non generata da uno script, l'utilizzo di << Ottieni oggetto Scriptable consente di stabilire un handle per quella piattaforma.Ri: Come posso ottenere i contenitori di Scatterplot 3DGrazie @julian , Questo è molto interessante.