Generatore di grafici: cambia la linea di larghezza del grafico parallelo quando è presente una variabile ColoreCiao a tutti,
Faccio un grafico in parallelo e utilizzo una variabile per colorare le linee. Ad esempio, utilizzo il seguente script con la tabella Big Class:
obj = Graph Builder(
Size( 636, 660 ),
Variables( X( :height ), X( :weight, Position( 1 ) ), Color( :age ) ),
Elements( Parallel( X( 1 ), X( 2 ), Legend( 3 ) ) )
);
Quindi vorrei modificare la larghezza della linea. Ho provato a eseguire questo:
frame = Report( obj )[FrameBox(1 )];
seg = frame << Find Seg( "Polyline Seg" );
seg << Set Line Width(3);
ma ha modificato solo le linee associate al primo livello della mia variabile Color (età in questo esempio).
Come posso modificare tutte le linee contemporaneamente? Devo usare la funzione Dispatch quando creo il grafico? Tuttavia non so davvero come gestirlo, poiché non conosco in anticipo il numero di livelli della variabile Color.
Grazie in anticipo per il vostro aiuto!
GraficaScriptingRi: Graph Builder: cambia la linea di larghezza di Parallel Plot quando c'è una variabile ColorNon sono sicuro del motivo per cui il tuo codice non funziona come previsto per te. Per me funziona (JMP 15 per Mac).
Un approccio alternativo consiste nell'usare Xpath.
(obj << xpath( "//PolylineSeg" )) << Set Line Width( 3 );
Ri: Graph Builder: cambia la linea di larghezza di Parallel Plot quando c'è una variabile ColorCiao Ann,
Sulla base di un paio di esperimenti che ho eseguito, vorrei innanzitutto assicurarmi che il tuo problema sia con la leggenda e non con la trama di GB. In tal caso, ho notato che quando modifichi manualmente lo spessore della linea nel menu Personalizza, anche le legende non vengono aggiornate correttamente. Quindi, questo sembra essere un bug.
Tuttavia, quando si modifica manualmente la larghezza della linea una alla volta nella Legenda, vengono aggiornate sia le curve che la Legenda.
Il codice corrispondente (per un oggetto Legend rimosso dallo script GB) è il seguente:
obj << SendToReport( Dispatch( {}, "400", ScaleBox, {Legend Model (3, Properties (2, {Line Width (3)}, Itemd ID ("14", 1) ) )}));
Quindi, per scorrere gli elementi della leggenda (cioè le età), ho trovato il seguente codice "brutto":
Names Default to Here (1);
dt = current data table ();
dts = dt << Summary(
Group( :age ),
Freq( "None" ),
Weight( "None" ),
invisible
);
dlist = Column (dts, "age") << get values;
Close (dts, NoSave);
show (dlist);
obj = dt << Graph Builder(
Size( 636, 660 ),
Variables( X( :height ), X( :weight, Position( 1 ) ), Color( :age ) ),
Elements( Parallel( X( 1 ), X( 2 ), Legend( 3 ) ) )
);
objr = obj << report;
//frame = objr [FrameBox(1 )]; NO LONGER NEEDED
//seg = frame << Find Seg( "Polyline Seg" ); NO LONGER NEEDED
//seg << Set Line Width(6); NO LONGER NEEDED
For (i = 0, i < N Items (dlist), i++,
obj << SendToReport( Dispatch( {}, "400", ScaleBox, {Legend Model (3, Properties (i, {Line Width (12)}, Itemd ID (dlist [i], 1) ) )}))
);
Ri: Graph Builder: cambia la linea di larghezza di Parallel Plot quando c'è una variabile ColorGrazie @SM e @Thierry_S per le tue risposte!
Il mio obiettivo è infatti quello di modificare la larghezza della linea del grafico e non solo della legenda.
Scelgo la soluzione di @SM dato che è un po 'più corto ma entrambi funzionano come un incantesimo!:)