Diagramma a bolle 'attraversa livelli' errore<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao,
Sto cercando di creare una trama animata a bolle e sto incontrando alcuni problemi.
Su ogni riga ho uno 'stato', 'passo', 'tempo' e 'id'. L'ID è univoco per un insieme di righe (con passaggio 1 fino a 10, con stati variabili).
Le mie file di dati hanno una variabile 'tempo', es. alcuni ID hanno tempi diversi rispetto ad altri ID. In alcuni casi anche il tempo si sovrappone, es. un 'ID' ha più 'passi' o 'stati' con lo stesso tempo.
Quando raccolgo la colonna del tempo in un numero di intervalli più grandi, il grafico a bolle inizia e funziona, ma solo SE riesco a rendere i raccoglitori abbastanza grandi. Tuttavia, il seguente errore viene visualizzato nel registro:
La colonna ID 'singleID' incrocia i livelli con la colonna degli assi categoriali 'Step'. Cambia ID in "Step"?
La colonna ID 'singleID' incrocia i livelli con la colonna degli assi categoriali 'Stato'. Cambia ID in "Stato"?
Quando non trascorro il tempo in un numero di intervalli, il grafico a bolle completamente non viene avviato e JMP mi suggerisce di sostituire l'ID con le altre colonne. Quando declino, il grafico a bolle non viene avviato e viene visualizzato il seguente errore:
La colonna ID 'singleID' incrocia i livelli con la colonna degli assi categoriali 'Step'. Cambia ID in "Step"?
La colonna ID 'singleID' incrocia i livelli con la colonna degli assi categoriali 'Stato'. Cambia ID in "Stato"?
Casella di visualizzazione[]
Impossibile allocare memoria sufficiente nell'accesso o nella valutazione di 'Bubble Plot', Bubble Plot (
Avvia la finestra di dialogo,
X (: Step),
Y (: stato),
Ora (: binTimeCentred),
Colorazione (: condizione di arresto),
ID (: singleID)
)
Le mie scuse per non aver incluso un esempio, preparare un esempio che potrei pubblicare online richiederebbe un po 'di tempo. Pertanto, speravo che qualcuno avesse qualche idea su come risolvere questo problema basandosi solo sulla descrizione.
Migliore,
Ri: Diagramma a bolle errore 'attraversa livelli'Modo interessante di visualizzare le transizioni Dan. Sarebbe anche potente mettere l'ultimo stato di ogni catena sull'asse x. Da altre analisi ho scoperto che alcuni stati non porteranno mai (o porteranno sempre) a un certo stato finale. Visualizzazioni come questa funzionano davvero bene in combinazione con il trasferimento di selezioni su altre piattaforme.
Ho sperimentato modi per visualizzare tutte le catene osservate contemporaneamente. Ho incluso una colonna nel set di dati di esempio che contiene lo stato di una riga e tutti gli stati precedenti nella sua catena (: statepath), ho anche assegnato i colori in base allo stato della riga, e fatto: indicare l'etichetta della riga. Questa informazione può essere utilizzata per creare qualcosa che assomigli a una struttura ad albero di tutte le possibili catene. Io uso un grafico a barre in pila per visualizzare queste informazioni. Ciascuno: il passo è una barra, ogni segmento della barra a: lo stato in quel 'ramo' dell'albero. Puoi leggere il grafico da sinistra a destra. Ogni segmento di una barra in una fase si divide per diventare più segmenti nella barra successiva (: fase). La modifica del numero di "livelli in vista" sull'asse x superiore consente di attraversare il grafico.
Sentiti libero di fornire un feedback.

Costruttore di grafici (
Taglia ( 1142 , 591 ) ,
Mostra il pannello di controllo ( 0 ) ,
Mostra leggenda ( 0 ) ,
variabili ( Y ( : Chiave ) , Gruppo X ( : Passo ) , copertura ( : statepath ) ) ,
Elementi (
Bar (
Y ,
Leggenda ( 5 ) ,
Bar Style ( "Stacked" ) ,
Statistica sommaria ( "N" ) ,
Etichetta ( "Etichetta riga" )
)
)) ;
Ri: Diagramma a bolle errore 'attraversa livelli'Un modo interessante per riepilogare i dati è aggiungere una colonna "stato precedente":
Tabella dati ( "dati test del grafico a bolle" ) << Nuova colonna ( "PrevState" ,
Tipo di dati ( Personaggio ) ,
Formula ( Sinistra ( Destra ( : statepath , 4 ) , 2 ) ) ,
Imposta proprietà ( Etichette di valore , Arg ( : Stato << Ottieni proprietà ( Etichette di valore ) , 1 ) ) ,
Imposta proprietà ( Ordinazione di valore , : Stato << Ottieni proprietà ( Ordinazione di valore ) )
) ;
Con questa colonna aggiunta, una heatmap di Graph Builder mostrerà la frequenza di ciascuna transizione:
Costruttore di grafici (
Mostra il pannello di controllo ( 0 ) ,
variabili ( X ( : PrevState ) , Y ( : Stato ) ) ,
Elementi ( Mappa di calore ( X , Y , Leggenda ( 3 ) ) ) ,
Filtro dati locale (
Posizione ( { 642 , 61 } ) ,
Modalità ( Selezionare ( 0 ) , Mostrare ( 1 ) , Includere ( 1 ) ) ,
Aggiungi filtro (
colonne ( : Stato ) ,
Dove ( : Stato == { "01" , "02" , "03" , "10" , "11" , "12" , "20" , "21" , "22" , "30" } ) ,
Display ( : Stato , Taglia ( 204 , 174 ) , Visualizzazione elenco )
)
)
) ;
Ho usato un filtro dati locale per escludere le transizioni in uno stato "00" (mancante). Quando ti fermi su una cella, la descrizione comando del passaggio del mouse mostrerà il conteggio delle transizioni corrispondenti:

Questa vista potrebbe essere utilizzata in combinazione con altre piattaforme per selezionare ed evidenziare determinate transizioni.
Ri: Diagramma a bolle errore 'attraversa livelli'Grazie Dan per la tua risposta elaborata. I tuoi approcci alternativi sono interessanti e la tua spiegazione sull'uso della memoria in relazione al tempo di binning è stata molto utile. È bene sapere che il binning è una soluzione in questa situazione, sebbene significhi perdere la visualizzazione di alcune transizioni.
Grazie!
Ri: Diagramma a bolle errore 'attraversa livelli'Ciao gv,
Grazie per i dati e lo script di esempio: è molto utile vedere il caso che stai guardando. Sui problemi:
- Memoria: per realizzare l'animazione, Bubble Plot memorizzerà la posizione di ogni bolla in ciascun momento unico. Delle tue 250k righe, vedo 83k valori di tempo non mancanti e oltre 5k di essi sono unici. Dal momento che ogni bolla persiste solo per 10 passaggi, i valori di tempo di 5k richiedono un bel po 'di memoria (7.7 GB sulla mia macchina rispetto a 1.5 GB nell'esempio con la stessa binned).
- Il binning ha perfettamente senso dato quanto sopra. Nessuna aggregazione viene eseguita su ID, quindi non perderai nessuna bolla, ma perderai la possibilità di vedere alcune transizioni di stato che avvengono molto rapidamente, all'interno della dimensione del cestino.
- Non c'è modo di evitare la finestra di dialogo "livelli incrociati" per l'uso interattivo, ma quando viene eseguito da uno script il messaggio verrà semplicemente scritto nel registro, senza interruzioni.
Se l'animazione temporale non è così importante, altre piattaforme potrebbero essere utili. Questo esempio utilizza un elemento Line Builder grafico con ruolo Overlay per mostrare tutte le transizioni contemporaneamente:
Costruttore di grafici (
Mostra il pannello di controllo ( 0 ) ,
variabili ( X ( : Passo ) , Y ( : Stato ) , copertura ( : UniqueID ) ) ,
Elementi (
Linea ( X , Y , Leggenda ( 3 ) , Ordine di fila ( 0 ) , Statistica sommaria ( "Significare" ) )
) ,
) ;

All'interno di questo grafico, se si trascina e si seleziona una parte qualsiasi di una riga, verranno selezionate tutte le righe con lo stesso ID.
Se si rimodellare i dati per includere tutte le transizioni di stati in una singola riga:
Tabella dati ( "dati test del grafico a bolle" ) << Diviso (
Dividi da ( : Passo ) ,
Diviso ( : Stato ) ,
Gruppo ( : UniqueID )
)
quindi puoi utilizzare la piattaforma Plot parallelo per vedere una vista simile. In questa piattaforma, puoi fare clic con il tasto destro del mouse su> Personalizza per impostare la trasparenza Polilinea su qualcosa come 0,01. Questo ti darà una vista ombreggiata in cui le transizioni più comuni sono più scure e le transizioni meno comuni sono sbiadite. Se selezioni un segmento in qualsiasi linea, verrà evidenziato:

Trama parallela (
Scala uniformemente ( 0 ) ,
Centro a zero ( 0 ) ,
Y (
: Nome ( "1" ) ,
: Nome ( "2" ) ,
: Nome ( "3" ) ,
: Nome ( "4" ) ,
: Nome ( "5" ) ,
: Nome ( "6" ) ,
: Nome ( "7" ) ,
: Nome ( "8" ),
: Nome ( "9" ) ,
: Nome ( "10" )
) ,
SendToReport (
Spedizione (
{} ,
"Parallel Coord" ,
framebox ,
{ Dimensione della cornice ( 633 , 420 ) , DispatchSeg (
PolylineSeg ( 1 ) ,
{ Trasparenza ( 0.01 )}
)}
)
)
) ;
Spero che queste idee siano utili!
-Dan
Ri: Diagramma a bolle errore 'attraversa livelli'Ciao Dan,
Grazie per la risposta e la spiegazione. Dispongo di più righe per ogni id (: uniqueID), ma queste corrispondono a valori dell'asse X diversi (: Step) e valori temporali (: starttimestate o (: binTimeCentred). Mi sono perso perché questo sarebbe considerato un problema poiché il punto dell'ID è seguire una bolla attraverso gli altri parametri, giusto? Ma forse mi manca qualcosa. Ho incluso alcuni dati. Sono legato all'utilizzo della versione a 32 bit (11.1.1), quindi probabilmente non mi aiuterà anche con problemi di memoria.
I miei dati descrivono una "catena" (sequenza) di stati (: stato) che si verifica durante una replica di una simulazione (: chiave), possono esistere più catene per una: chiave. Gli stati si susseguono in una serie di passaggi (: Step) in quella che viene chiamata catena. Ogni nuovo passo in una catena è uno stato diverso dallo stato precedente e si verifica in un momento (: StartTimestate). Questo crea circa 255 diverse combinazioni di passi (: ID). Ma, in totale, si osservano circa 25000 catene (: uniqueID). Ogni catena ha sempre 10 passaggi ma i dati potrebbero mancare.
Quello che sto cercando di ottenere è una visualizzazione di come le catene si comportano nella dimensione "stato" e "tempo". Vorrei mostrare come una bolla di ogni catena (: UniqueID) si muove attraverso i suoi passi (asse x) nel tempo e in che modo cambia il suo stato (asse y). Il risultato sarebbe quindi un grafico a bolle in cui le bolle si muovono sempre da sinistra a destra (: passo), ma si comportano diversamente muovendosi su e giù (: stato). Credo che questo sarebbe un modo divertente per visualizzare i modelli in un set di dati multidimensionale piuttosto grande, lo script verrà utilizzato in un'interfaccia utente, quindi preferirei che non vengano visualizzati degli avvisi. Quando si utilizza la variabile: starttimestate come il tempo sarebbe grande, ma questo innesca l'errore di 'memoria'. Stranamente l'uso di intervalli di tempo (piuttosto grandi) (: binttimecentred) funziona, lo dico stranamente perché questo non modifica il numero di ID ..
Qualsiasi pensiero è benvenuto, anche su come sopprimere l'errore "livelli incrociati"
Grazie ancora!
script:
tabella di dati ("dati test del grafico a bolle") << Grafico a bolle (
X (: Step),
Y (: stato),
Ora (: binTimeCentred),
Colorazione (: condizione di arresto),
ID (: UniqueID),
Dimensione bolla (15,24),
Indice temporale (2.5),
Orient Shapes (1),
Etichetta ("Nessuno"),
Trail Lines ("Selected"),
Imposta forma ("Triangolo"),
Posizione del titolo (8, 5.11),
SendToReport (
Spedizione(
{},
"1",
scalebox,
{Min (-0.5), Max (9.5), Inc (1), Minore Ticks (0)}
),
Spedizione(
{},
"2",
scalebox,
{Min (-0.5), Max (10.5), Inc (1), Minore Ticks (0)}
)
)
);
Ri: Diagramma a bolle errore 'attraversa livelli'Ciao gv,
L'errore "Livelli incrociati" è semplicemente un avvertimento, perché in molti casi non è ciò che il cliente si aspettava.
Quando hai un asse categoriale e due righe con la stessa mappa ID su valori diversi sull'asse, la domanda è dove mettere la bolla. Se decidi di cambiare le variabili, dovrebbe comunque funzionare, ma è più difficile leggere i valori dal grafico. Potrebbe non essere chiaro se una bolla su X = "North Carolina" rappresenti realmente osservazioni dalla Carolina del Nord o se la bolla rappresenti un'aggregazione di due bolle con X = "Virginia" e X = "Carolina del Sud". La "media" è semplicemente basata sugli ordini di valore della colonna categoriale, quindi sono possibili tutte le combinazioni.
Credo che il tuo problema di memoria si riferisca al (numero di ID) x (numero di volte). Se disponi di molti ID che contengono solo dati per un piccolo numero di volte, le esigenze di archiviazione potrebbero essere maggiori del previsto. Se è possibile condividere un set di dati o commentare ulteriormente le caratteristiche dei dati, possiamo confermare che questo è il problema.
-Dan
Ri: Diagramma a bolle errore 'attraversa livelli'Ciao,
Sarei comunque interessato a qualsiasi suggerimento che potresti avere. Forse, uno dei professionisti di JMP potrebbe commentare il significato dell'errore "Livelli incrociati", poiché non è menzionato in nessuna delle documentazione disponibile. Inoltre, il loro sembra essere un limite alla quantità di dati che possono essere utilizzati in un grafico a bolle, dal momento che anch'io ricevo un 'Impossibile allocare memoria sufficiente', o potrebbe essere causato da qualche tipo di errore nei miei dati di input? Purtroppo non sono riuscito a riprodurre l'errore con i dati di esempio utilizzati nell'esempio del grafico a bolle: ( Esempio di un grafico a bolle dinamiche ).
Migliore,