Costruttore di grafici: modifica la larghezza della linea di Parallel Plot quando è presente una variabile ColoreCiao a tutti,
Faccio una trama parallela 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 potrei modificare tutte le linee contemporaneamente? Devo utilizzare 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!
Personalizzazione di massaRi: 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: Costruttore di grafici: modifica la larghezza della linea di Parallel Plot quando è presente una variabile ColoreGrazie @ms e @Thierry_S per le vostre risposte!
Il mio obiettivo è infatti quello di modificare la larghezza della linea del grafico e non solo della legenda.
Scelgo la soluzione di @ms poiché è un po' più breve ma entrambe funzionano a meraviglia!:)