Bubble Plot-Fehler "Kreuze Ebenen"<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo,
Ich versuche, eine animierte Blasendarstellung zu erstellen und stoße auf einige Probleme.
In jeder Reihe habe ich 'state', 'step', 'time' und 'id'. Die ID ist für einen Satz von Zeilen eindeutig (mit Schritt 1 bis 10 mit unterschiedlichen Status).
Meine Datenzeilen haben eine variable 'Zeit', dh. Einige IDs haben andere Zeiten als andere IDs. In einigen Fällen überschneidet sich die Zeit, d. Eine "ID" hat mehrere "Schritte" oder "Zustände" mit derselben Uhrzeit.
Wenn ich die Zeitspalte in eine Reihe größerer Intervalle einlege, wird der Blasendiagramm gestartet und funktioniert, aber nur, wenn ich die Ablagen groß genug mache. Der folgende Fehler wird jedoch im Protokoll angezeigt:
ID-Spalte 'singleID' kreuzt Ebenen mit kategorialer Achsenspalte 'Schritt'. ID in 'Schritt' ändern?
ID-Spalte 'singleID' kreuzt Ebenen mit kategorialer Achsenspalte 'State'. ID in 'State' ändern?
Wenn ich in einigen Intervallen nicht bin bin, wird das Blasendiagramm nicht vollständig gestartet, und JMP fordert mich auf, die ID durch die anderen Spalten zu ersetzen. Wenn ich ablehne, wird das Blasendiagramm nicht gestartet und der folgende Fehler wird angezeigt:
ID-Spalte 'singleID' kreuzt Ebenen mit kategorialer Achsenspalte 'Schritt'. ID in 'Schritt' ändern?
ID-Spalte 'singleID' kreuzt Ebenen mit kategorialer Achsenspalte 'State'. ID in 'State' ändern?
Vitrine[]
Speicherplatz für Zugriff oder Bewertung von 'Bubble Plot', Bubble Plot (
Dialog starten,
X (: Schritt),
Y (: Bundesstaat),
Zeit (: binTimeCentred),
Färbung (: Stoppbedingung),
ID (: singleID)
)
Ich entschuldige mich dafür, dass ich kein Beispiel beigefügt habe, ein Beispiel zu erstellen, das ich online posten könnte, würde einige Zeit in Anspruch nehmen. Daher habe ich gehofft, dass sich jemand Gedanken darüber gemacht hat, wie man dieses Problem allein aufgrund der Beschreibung löst.
Beste,
Re: Bubble Plot-Fehler "Kreuze Ebenen"Interessante Art, die Übergänge zu visualisieren. Es wäre auch mächtig, den letzten Zustand jeder Kette auf die x-Achse zu setzen. Aus anderen Analysen habe ich herausgefunden, dass einige Zustände niemals zu einem bestimmten Endzustand führen (oder immer führen werden). Visualisierungen wie diese funktionieren in der Tat gut, wenn sie auf andere Plattformen übertragen werden.
Ich habe mit Möglichkeiten experimentiert, alle beobachteten Ketten gleichzeitig zu visualisieren. Ich habe eine Spalte in das Beispiel-Dataset eingefügt, die den Status einer Zeile und alle vorangehenden Status in ihrer Kette (: Statepath) enthält. Außerdem habe ich Farben basierend auf dem Status der Zeile zugewiesen und die Zeilenbezeichnung festgelegt. Diese Informationen können verwendet werden, um etwas zu erstellen, das einer Baumstruktur aller möglichen Ketten ähnelt. Ich verwende ein gestapeltes Balkendiagramm, um diese Informationen anzuzeigen. Jeder Schritt ist ein Balken, jedes Segment des Balkens ist ein: Zustand in diesem 'Zweig' des Baums. Sie können die Grafik von links nach rechts lesen. Jedes Segment einer Leiste in einem Schritt wird in mehrere Segmente der nächsten Leiste aufgeteilt (: Schritt). Wenn Sie die Anzahl der "Ebenen in Ansicht" auf der oberen X-Achse ändern, können Sie durch die Grafik gehen.
Fühlen Sie sich frei, um Feedback zu geben.

Graph Builder (
Größe ( 1142 . 591 ) .
Systemsteuerung anzeigen ( 0 ) .
Legende anzeigen ( 0 ) .
Variablen ( Y ( : Schlüssel ) . Gruppe X ( : Schritt ) . Überlagerung ( : statepath ) ) .
Elemente (
Bar (
Y .
Legende ( 5 ) .
Bar Style ( "Gestapelt" ) .
Zusammenfassungsstatistik ( "N" ) .
Etikette ( "Zeilenbeschriftung" )
)
)) ;
Re: Bubble Plot-Fehler "Kreuze Ebenen"Eine interessante Möglichkeit zum Zusammenfassen der Daten besteht im Hinzufügen einer Spalte "Vorheriger Status":
Datentabelle ( "Bubble-Plot-Testdaten" ) << Neue Spalte ( "PrevState" .
Datentyp ( Charakter ) .
Formel ( Links ( Recht ( : statepath . 4 ) . 2 ) ) .
Eigenschaft festlegen ( Wertetiketten . Arg ( : Zustand << Holen Sie sich Eigentum ( Wertetiketten ) . 1 ) ) .
Eigenschaft festlegen ( Wertbestellung . : Zustand << Holen Sie sich Eigentum ( Wertbestellung ) )
) ;
Mit dieser hinzugefügten Spalte zeigt eine Heat Builder-Grafik die Häufigkeit jedes Übergangs an:
Graph Builder (
Systemsteuerung anzeigen ( 0 ) .
Variablen ( X ( : PrevState ) . Y ( : Zustand ) ) .
Elemente ( Heatmap ( X . Y . Legende ( 3 ) ) ) .
Lokale Datenfilter (
Ort ( { 642 . 61 } ) .
Modus ( Wählen ( 0 ) . Show ( 1 ) . Umfassen ( 1 ) ) .
Filter hinzufügen (
Säulen ( : Zustand ) .
Woher ( : Zustand == { "01" . "02" . "03" . "10" . "11 . "12" . "20" . "21" . "22" . "30" } ) .
Anzeige ( : Zustand . Größe ( 204 . 174 ) . Listendarstellung )
)
)
) ;
Ich habe einen lokalen Datenfilter verwendet, um die Übergänge in den Status "00" (fehlend) auszuschließen. Wenn Sie sich über einer Zelle befinden, zeigt der Hover-Tooltip die Anzahl der übereinstimmenden Übergänge an:

Diese Ansicht kann in Kombination mit anderen Plattformen verwendet werden, um bestimmte Übergänge auszuwählen und hervorzuheben.
Re: Bubble Plot-Fehler "Kreuze Ebenen"Vielen Dank Dan für Ihre ausführliche Antwort. Ihre alternativen Ansätze sind interessant und Ihre Erklärung zur Speichernutzung in Bezug auf die Binning-Zeit war sehr hilfreich. Es ist gut zu wissen, dass Binning eine Lösung in dieser Situation ist, obwohl es bedeutet, die Sichtbarmachung einiger Übergänge zu verlieren.
Vielen Dank!
Re: Bubble Plot-Fehler "Kreuze Ebenen"Hallo gv,
Vielen Dank für die Daten und das Beispielskript. Es ist sehr hilfreich, den Fall zu sehen, den Sie betrachten. Zu den Fragen:
- Speicher - Um die Animation durchzuführen, speichert Bubble Plot die Position jeder Blase zu jedem Zeitpunkt. Von Ihren 250.000 Zeilen sehe ich 83.000 fehlende Zeitwerte, und über 5.000 davon sind eindeutig. Da jede Blase nur für 10 Schritte bestehen bleibt, benötigen die 5-k-Zeitwerte ziemlich viel Speicherplatz (7,7 GB auf meinem Computer im Vergleich zu 1,5 GB in Ihrem eingebetteten Beispiel).
- Das Binning ist in Anbetracht des Vorstehenden durchaus sinnvoll. Über IDs wird keine Aggregation durchgeführt, so dass Sie keine Blasen verlieren, aber Sie werden die Möglichkeit verlieren, einige Zustandsübergänge zu sehen, die sehr schnell auftreten - innerhalb der Bin-Größe.
- Es gibt keine Möglichkeit, den Dialog "Kreuzebenen" für die interaktive Verwendung zu vermeiden. Wenn Sie jedoch von einem Skript aus ausgeführt werden, wird die Nachricht einfach und ohne Unterbrechung in das Protokoll geschrieben.
Wenn die Zeitanimation nicht so wichtig ist, können andere Plattformen hilfreich sein. In diesem Beispiel wird ein Graph Builder-Linienelement mit Überlagerungsrolle verwendet, um alle Übergänge gleichzeitig anzuzeigen:
Graph Builder (
Systemsteuerung anzeigen ( 0 ) .
Variablen ( X ( : Schritt ) . Y ( : Zustand ) . Überlagerung ( : Eindeutige ID ) ) .
Elemente (
Linie ( X . Y . Legende ( 3 ) . Reihenreihenfolge ( 0 ) . Zusammenfassungsstatistik ( "Bedeuten" ) )
) .
) ;

Wenn Sie in diesem Diagramm einen Teil einer Linie per Drag-Select auswählen, werden alle Zeilen mit derselben ID ausgewählt.
Wenn Sie die Daten umformen, um alle Zustandsübergänge in einer einzelnen Zeile einzuschließen:
Datentabelle ( "Bubble-Plot-Testdaten" ) << Teilt (
Split By ( : Schritt ) .
Teilt ( : Zustand ) .
Gruppe ( : Eindeutige ID )
)
Dann können Sie die Parallel Plot-Plattform verwenden, um eine ähnliche Ansicht anzuzeigen. Auf dieser Plattform können Sie mit der rechten Maustaste> Anpassen klicken, um die Polylinien-Transparenz auf etwa 0,01 einzustellen. Dadurch erhalten Sie eine schattierte Ansicht, in der häufigere Übergänge dunkler sind und weniger übliche Überblendungen verblassen. Wenn Sie ein Segment in einer Zeile auswählen, wird es hervorgehoben dargestellt:

Parallele Darstellung (
Gleichmäßig skalieren ( 0 ) .
Bei Null zentrieren ( 0 ) .
Y (
: Name ( "1" ) .
: Name ( "2" ) .
: Name ( "3" ) .
: Name ( "4" ) .
: Name ( "5" ) .
: Name ( 6 ) .
: Name ( "7" ) .
: Name ( "8" )
: Name ( "9" ) .
: Name ( "10" )
) .
SendToReport (
Versand (
{} .
"Parallel Coord" .
FrameBox .
{ Rahmengröße ( 633 . 420 ) . DispatchSeg (
PolylineSeg ( 1 ) .
{ Transparenz ( 0,01 )}
)}
)
)
) ;
Ich hoffe, diese Ideen sind hilfreich!
-Dan
Re: Bubble Plot-Fehler "Kreuze Ebenen"Hallo Dan,
Vielen Dank für Ihre Antwort und Erklärung. Ich habe mehrere Zeilen für jede ID (: uniqueID), aber diese entsprechen sowohl verschiedenen X-Achsenwerten (: Step) als auch Zeitwerten (: starttimestate oder (: binTimeCentred)). Ich bin verloren, warum dies als Problem betrachtet wird, da der Punkt der ID darin besteht, einer Blase über die anderen Parameter zu folgen, oder? Aber vielleicht fehlt mir etwas. Ich habe einige Daten hinzugefügt. Ich bin übrigens an die 32-Bit-Version (11.1.1) gebunden, so dass dies wahrscheinlich auch bei Speicherproblemen nicht helfen wird.
Meine Daten beschreiben eine 'Kette' (Sequenz) von Zuständen (: Status), die während einer Replikation einer Simulation (: Schlüssel) auftritt. Es können mehrere Ketten für einen: Schlüssel vorhanden sein. Die Zustände folgen in mehreren Schritten (: Schritt) in einer Kette, die als Kette bezeichnet wird. Jeder neue Schritt in einer Kette ist ein Zustand, der sich vom vorherigen Zustand unterscheidet und zu einem Zeitpunkt auftritt (: StartTimestate). Dadurch werden etwa 255 verschiedene Schrittkombinationen (: ID) erstellt. Insgesamt werden jedoch etwa 25000 Ketten beobachtet (: uniqueID). Jede Kette hat immer 10 Schritte, aber es könnten Daten fehlen.
Was ich versuche zu erreichen, ist eine Visualisierung, wie sich die Ketten in der Dimension "Zustand" und "Zeit" verhalten. Ich möchte zeigen, wie sich eine Blase jeder Kette (: UniqueID) im Laufe der Zeit durch ihre Schritte (X-Achse) bewegt und wie sich ihr Zustand (Y-Achse) ändert. Das Ergebnis wäre also ein Blasendiagramm, in dem sich die Blasen immer von links nach rechts bewegen (: Schritt), sich jedoch unterschiedlich auf und ab bewegen (: Zustand). Ich glaube, dies wäre eine unterhaltsame Möglichkeit, Muster in einem ziemlich großen mehrdimensionalen Datensatz zu visualisieren. Das Skript wird in einer Benutzeroberfläche verwendet. Ich möchte also lieber keine Warnungen auftauchen. Wenn Sie die Variable: starttimestate als Zeit verwenden, wäre dies zwar groß, dies löst jedoch den Speicherfehler aus. Seltsam mit (ziemlich großen) Zeitintervallen (: binttimecentred) klappt es, sage ich seltsam, weil sich dadurch die Anzahl der IDs nicht ändert.
Jegliche Überlegungen sind erwünscht, auch zur Unterdrückung des Fehlers der Kreuzungsstufen
Danke noch einmal!
Skript:
Datentabelle ("Bubble-Diagrammtestdaten") << Bubble-Diagramm (
X (: Schritt),
Y (: Bundesstaat),
Zeit (: binTimeCentred),
Färbung (: Stoppbedingung),
ID (: UniqueID),
Blasengröße (15,24),
Zeitindex (2,5),
Orientformen (1),
Label ("Keine"),
Trail Lines ("Ausgewählt"),
Form setzen ("Dreieck"),
Titelposition (8, 5.11)
SendToReport (
Versand(
{},
"1",
ScaleBox,
{Min (-0,5), Max (9,5), Inc (1), Minor Ticks (0)}
)
Versand(
{},
"2",
ScaleBox,
{Min (-0,5), Max (10,5), Inc (1), Minor Ticks (0)}
)
)
);
Re: Bubble Plot-Fehler "Kreuze Ebenen"Hallo gv,
Der Fehler "Kreuzebenen" ist lediglich eine Warnung, da er in vielen Fällen nicht das ist, was der Kunde erwartet hat.
Wenn Sie eine kategoriale Achse haben und zwei Zeilen mit derselben ID unterschiedlichen Werten auf der Achse zugeordnet sind, wird gefragt, wo die Blase platziert werden soll. Wenn Sie sich weigern, Variablen zu ändern, sollte dies immer noch funktionieren, es ist jedoch schwieriger, Werte aus dem Diagramm zu lesen. Es ist möglicherweise nicht klar, ob eine Blase auf X = "North Carolina" wirklich Beobachtungen aus North Carolina darstellt oder ob die Blase eine Aggregation von zwei Blasen mit X = "Virginia" und X = "South Carolina" darstellt. Die "Mittelwertbildung" basiert einfach auf den Wertebestellungen der Kategoriespalte, sodass beliebige Kombinationen möglich sind.
Ich glaube, Ihr Speicherproblem bezieht sich auf die Anzahl (Anzahl der IDs) x (Anzahl der Male). Wenn Sie über viele IDs verfügen, die nur für eine kleine Anzahl von Zeiten Daten enthalten, ist der Speicherbedarf möglicherweise größer als erwartet. Wenn Sie einen Datensatz freigeben oder die Eigenschaften der Daten weiter kommentieren können, können Sie bestätigen, dass dies das Problem ist.
-Dan
Re: Bubble Plot-Fehler "Kreuze Ebenen"Hallo,
Ich würde mich immer noch für Ihre Vorschläge interessieren. Vielleicht könnte einer der JMP-Profis die Bedeutung des Fehlers "Crosses-Stufen" kommentieren, da er in keiner der verfügbaren Dokumentation erwähnt wird. Außerdem scheint es sich um eine Begrenzung der Datenmenge zu handeln, die in einem Blasendiagramm verwendet werden kann, da ich auch eine Meldung bekomme, dass nicht genügend Speicherplatz zugewiesen werden könnte. Ich konnte den Fehler mit den Beispieldaten, die im Blasendiagramm-Beispiel verwendet wurden, leider nicht reproduzieren: ( Beispiel eines dynamischen Blasendiagramms ).
Beste,