Quando ci occupiamo di grafici e grafici, molto probabilmente dovremo riempire i colori di un grafico per evidenziare un'area o distinguerla da altre forme. Potresti sapere come ombreggiare le forme regolari, ma che dire poligoni e contorni irregolari ? Puoi farlo facilmente con qualsiasi forma grafica usando Polygon (). Abbiamo solo bisogno dei punti dati!

Sopra c'è un grafico su cui stavo lavorando per la previsione del reclutamento del paziente (cercate presto un post sul blog). Le linee del trattino-punto sono 2,5 esimo e 97.5 esimo percentili di 10.000 simulazioni. La linea rossa continua è la media dei valori simulati. Riempiendo questo intervallo di confidenza con il colore aiuterebbe le persone a comprendere lo scopo della previsione di iscrizione, quindi ho esplorato come farlo. All'inizio, ho specificato i tre vertici del triangolo e ho ottenuto questo:

Hmm ... non proprio quello che mi aspettavo. Qual è il problema? Apparentemente questo grafico non è esattamente un triangolo, anche se sicuramente sembra uno. La parte inferiore è più ampia e pertanto l'ombreggiatura triangolare non può coprire l'intera banda dell'intervallo di confidenza. come possiamo fissare questo?
Per riempire un'immagine con il colore, devi prima conoscere il confine della tua forma e i punti dati che costituiscono il confine. In questo caso, i miei confini sono tre lati del "triangolo" e i punti dati sono il 2.5 esimo percentili e 97,5 esimo percentili. Nota che non ho bisogno del terzo lato, il segmento della linea orizzontale, perché una volta che costruisco i due lati, JMP collega automaticamente i due punti finali con una linea retta. Ma se hai un segmento non rettilineo, avrai bisogno di punti dati per dire a JMP dove si ferma l'ombreggiatura.
Successivamente, in JSL, estraiamo i punti dati dal set di dati, salviamo i dati in colonne e li ordiniamo.
ds = Data Table( "graphbuilder" );
ds << seleziona dove (: data == "Previsione 2,5%");
dslow = ds << sottoinsieme (
Nome tabella di output ("Percentile inferiore"),
Righe selezionate (1),
invisibile
);
dslow_sort = dslow << sort (Per (: time), Order (Ascending));
ds << seleziona dove (: data == "Predicato 97,5%");
dsupp = ds << sottoinsieme (
Nome tabella di output ("Percentile superiore"),
Righe selezionate (1),
invisibile
);
dsupp_sort = dsupp << sort (By (: time), Order (Descending));
I due sottoinsiemi, dslow e dsupp, contengono i punti dati del nostro confine, le due linee punto-punto. Si noti che ho ordinato dslow in ordine crescente ma dsupp in ordine discendente poiché JMP disegna il limite con la direzione. Ho scelto di disegnare la banda CI in senso orario: partendo dal punto di intersezione della linea blu e le linee rosse, salendo seguendo la 2.5 esimo percentile, e tornando dopo il 97.5 esimo percentile dal lato orizzontale. Quindi, i punti dati del 97.5 esimo il percentile deve essere in ordine decrescente.
Ora che abbiamo i punti dati ordinati, dobbiamo metterli insieme in una matrice chiamata "tutti". I valori x nella matrice sono "xall" e i valori y nella matrice sono "yall". Qui, il tempo è il mio asse x e il numero è il mio asse y.
Col1 = Column( dslow_sort, "time" );
tl = col << GetAsMatrix;
Col1 = Column (dslow_sort, "number");
nl = col << GetAsMatrix;
Col2 = Column (dsupp_sort, "time");
tu = col << GetAsMatrix;
col2 = Column (dsupp_sort, "number");
nu = col << GetAsMatrix;
inferiore = tl || nl;
superiore = tu || nu;
tutto = inferiore | / superiore;
xall = all [0,1];
yall = all [0,2];
Pen Color( "red" );
Colore riempimento ("rosso");
Trasparenza (0,2);
Poligono (xall, yall);

Il passaggio finale è semplice: chiama la matrice in Poligono () e riempi colore. Usa il codice dalla seconda casella in alto nella tua istruzione Graph Builder o in una nuova finestra. Ora dovresti avere una banda triangolare perfettamente sfumata in rosso con un certo grado di trasparenza!
Pensieri finali : Puoi riempire qualsiasi forma di area con il colore finché hai i punti dati. Di seguito è riportato un altro esempio di ombreggiatura degli script grafici, che dimostra solo una delle numerose varianti che è possibile creare modificando le opzioni.

Buon divertimento!