Attualmente sto lavorando su un dashboard per un reparto di produzione industriale. Da un lato mi piacerebbe mostrare i fori praticati nella fusoliera o nell'aereo in un grafico a dispersione 3D. Dall'altro lato vorrei mostrare gli orari di inizio di ogni lavoro di perforazione che è fondamentalmente un grafico a dispersione con alcune categorie sull'asse verticale e il tempo continuo sull'asse orizzontale. Nei dati sono presenti più fusoliere, quindi il primo passo è selezionarne una. Dopo la selezione un filtro dati invisibile nasconde ed esclude altri punti. Funziona principalmente bene, tuttavia ho riscontrato un problema che non ho idea di risolvere.
Ci sono più macchine che eseguono la perforazione. Vorrei codificare a colori tutti i punti (sia nel grafico a dispersione 3d che nella timeline) in base ai programmi di lavoro caricati sulle macchine. Quando lo faccio selezionando :Job ID come variabile di colore* noto che i due grafici utilizzano colori diversi per ciascun :Job ID. Quando seleziono, ad esempio, i punti rossi nella timeline, i punti blu vengono selezionati nel grafico a dispersione 3D.
How to make colors match between graphs?Come far corrispondere i colori tra i grafici?
Mi chiedo se esiste un modo per sincronizzare/abbinare i colori su entrambi i grafici? Tutte le idee sono benvenute. Sono completamente bloccato.
Inoltre, mi spiace per la sfocatura, non sono sicuro di poter mostrare i numeri reali, sto solo andando sul sicuro.
Grazie!
*: il grafico della sequenza temporale proveniente da una finestra di creazione di grafici ha:
timeline = Graph Builder(
Size( 1300, 600 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(
X( :Start Time Stamp ),
X( :Load Time Stamp, Position( 1 ) ),
Y( :Side ),
Y( :Longitudinal Location, Position( 1 ) ),
Y( :Machine, Position( 1 ) ),
Color( :Job ID )
),
Elements( Points( X( 1 ), X( 2 ), Y( 1 ), Y( 2 ), Y( 3 ) ) ),
),
e il grafico a dispersione 3D ha:
scatter = Scatterplot 3D(
Y( :x, :y, :z ),
Coloring( :Job ID ),
Show Controls( 0 ),
Frame3D(
Set Graph Size( 500, 500 ),
Set Grab Handles( 0 ),
Set Rotation( -54, 0, 38 )
),
),Ho eliminato parte del codice extra che ho utilizzato per eliminare le legende, impostare i limiti degli assi, ecc. dagli script sopra. Distraggono.
L'idea di txnelson è abbastanza semplice ed elegante. Ho aggiunto i colori valore alla colonna "ID lavoro" e quindi nel menu Righe ho utilizzato "Colore o Segna per colonna". E subito i colori sono apparsi sul grafico a dispersione 3D.La trama della sequenza temporale ha richiesto un piccolo sforzo in più per abbinare i colori. Ho usato due variabili nell'asse orizzontale e il generatore di grafici assegna automaticamente i colori a quale colonna provengono i punti e sovrascrive la colorazione della riga dalla tabella. Ma una volta incluso il Color( :Job ID ) nel generatore di grafici, tutti i colori si abbinavano perfettamente!
Posso facilmente trasformarlo in uno script ora basato su ciò che ho imparato dalla risposta di vince_faller. Sono stati entrambi molto utili.
Grazie ad entrambi!
Puoi farlo al volo con
Names Default to Here(1);
dt = Open("$SAMPLE_DATA\Big Class.jmp");
//this will give you a legend
// the expression just makes it so it's live in both windows
legend = Expr(dt << Color By Column(:age));
//you have to make a custom report to show the proper legend
new window("Example",
Hlistbox(
bivariate(Y(:height), X(:weight),
Where(:age <= 14)
),
legend
),
Hlistbox(
bivariate(Y(:height), X(:weight),
Where(:age >= 13)
),
legend
)
);
Almeno questo dovrebbe darti un'idea.
Se si imposta la proprietà della colonna Colori valore per :ID lavoro, sia il grafico a dispersione 3D che il generatore di grafici utilizzeranno quei colori.