Beste Weg, um Abrieb mit R zu visualisieren?


15

Durch diese Site habe ich kürzlich Sankey-Diagramme entdeckt, eine großartige Möglichkeit, um zu visualisieren, was in einem traditionellen Flussdiagramm geschieht .

Hier ist ein gutes Beispiel eines Sankey-Diagramms von George M. Whitesides und George W. Crabtree , Vergessen Sie nicht die langfristige Grundlagenforschung im Energiebereich Source; Langfristige Grundlagenforschung in Energie , Wissenschaft nicht vergessen 9. Februar 2007: Bd. 315. nein. 5813, S. 796–798.

Nachdem ich feststellte, dass es kein Sankey-R-Paket gab, fand ich ein R-Skript online , leider ist dieses Skript ziemlich rau und etwas eingeschränkt. Mit großen Hoffnungen habe ich nach einem Sankey-R-Paket oder einer ausgereifteren Funktion beim Stackoverflow gefragt , aber zu meiner Überraschung scheint es, als hätten wir keine ausgereifte Funktion zum Erstellen von Sankey-Diagrammen in R.

Nachdem ich ein Kopfgeld gepostet hatte, war Geek On Acid so freundlich , einen kleinen Hack auf das vorhandene Skript vorzuschlagen, der es mehr oder weniger für meinen speziellen Zweck funktionierte.

Das verbesserte R-Skript erzeugte dieses Diagramm, Geek On Acids R-Sankey-Diagramm Source; stackoverflow.com .

Weist das Fehlen eines R-Pakets jedoch darauf hin, dass Sankey-Diagramme nicht so erstaunlich sind, um die Abnutzung mithilfe von R in einem Datenfluss zu visualisieren, wie im obigen Diagramm dargestellt (siehe erste Frage zum Stapelüberlauf für Daten und R-Code . Möglicherweise Es gibt eine bessere Möglichkeit, Abnutzung zu visualisieren.

Was ist Ihrer Meinung nach der beste Weg, um Abnutzung in einem Datenfluss mit R zu visualisieren?


7
Es ist sehr schwierig , das Diagramm auf automatisierte Weise ansprechend aussehen zu lassen (das erste Beispiel wurde wahrscheinlich von dem Künstler durchgeführt, der die Knoten manuell platziert). Schwierig zu programmieren hat nichts mit seinem Nutzen als grafisches Werkzeug zu tun. Vielleicht finden Sie in meinem Beitrag auf der GIS-Website mehr Motivation zum Visualisieren von Abläufen. Außerdem gebe ich einige Beispiele für Parsets und Punktdiagramme auf einer Antwort auf diese Site.
Andy W

@ AndyW, vielen Dank für einen sehr nützlichen Kommentar. Ich werde die verschiedenen Methoden untersuchen und mit meinen Daten experimentieren. Vielen Dank.
Eric Fail

Dieses obere Diagramm ist eine großartige Idee, aber für mich sieht es so aus, als ob die Summe der Quellen nicht der Summe der Senken entspricht (vorausgesetzt, die Höhe beschreibt die Größe)
naught101

Ah ... egal, ich habe es falsch gelesen ... die helleren Stellen auf den Quellen sind nur Bezeichnungen, nicht Teil der Daten. Ein wenig verwirrend ..
naught101

Antworten:


4

Ich bin mit @gung einverstanden. Das von Ihnen veröffentlichte Sankey-Diagramm ist meines Erachtens ein ziemlich gutes Beispiel dafür, wo die Technik helfen kann. Obwohl es kompliziert ist, ist der Kontext (Energieein- und -ausgabe) auch komplex und es ist schwerlich sich eine schönere Art der Visualisierung der Pfade von Eingaben zu Ausgaben vorzustellen, die über mehrere Verwendungskategorien hinweg als neue Eingaben fungieren.

Nun, wie andere angemerkt haben, ist es für das von Ihnen gepostete Abnutzungsbeispiel nicht hilfreich, ein Sankey-Diagramm zu verwenden. Ich denke, Sie müssen Ihren vollständigen Variablensatz veröffentlichen, wenn Sie eine gute Empfehlung für alternative Visualisierungen wünschen. Wenn Sie lediglich Unterschiede in den Abnutzungsquellen zwischen Standorten und Ärzten aufzeigen möchten, ist eine Reihe von Punktdiagrammen mit einem kleinen Vielfachen für Ihr Publikum möglicherweise am einfachsten zu verstehen und zu implementieren ( siehe dieses Beispiel , wo in Ihrem Fall die Gruppen sein könnten) Die Standorte, die Elemente innerhalb der Gruppen würden die Abnutzungsursachen sein, und die horizontale Achse würde 0-100% betragen.

Wenn Sie das Sankey-Diagramm verwenden möchten und bereit sind, in einer anderen Hochsprache zu experimentieren, finden Sie in der Galerie ein schönes Beispiel (mit Code) für das Python-Plot-Paket matplotlib.


3

Ich würde nicht unbedingt annehmen, dass das Fehlen einer Methode impliziert, dass die Methode unwichtig oder nicht nützlich ist. Schließlich gab es für alle Methoden, die derzeit in R existieren, eine Zeit (möglicherweise kürzlich - R ist erst ~ 10 Jahre alt), in der es kein Paket dafür gab.

Ich sollte jedoch denken, dass es eine Reihe von Möglichkeiten gibt, Daten wie Abrieb zu visualisieren. Mein erster Gedanke beim Betrachten Ihres Diagramms ist, dass es mit einem Punktdiagramm dargestellt werden kann . Es gibt auch andere Möglichkeiten. Die zusätzliche Funktionalität des Sankey Diagramm wird ins Spiel kommen , wenn Sie haben eine gewisse Fluktuation aufgrund einer bestimmten Ursache an einem Punkt, und dann mehr aufgrund der gleichen Ursache später mit anderen Ein- und Ausgängen dazwischen. Die Darstellung in Standardplots wäre komplizierter (es ist auch schwieriger, selbst mit einem Sankey-Diagramm zu folgen - zum Beispiel erfordert das Lesen des Diagramms oben auf der Seite einiges an Arbeit). Da Sie das nicht zu haben scheinen, scheint das Sankey-Diagramm hübsch, aber übertrieben zu sein.


1
Die erste Grafik ist fantastisch, IMO. Es enthält viele Details, die in einer Reihe von Punktdiagrammen nur schwer intuitiv erfasst werden können. Das Sankey-Diagramm ist auch gut geeignet, um Flüsse von und zu verschiedenen Knoten zu visualisieren (die Wiedervereinigung in verbrauchte Energie und verlorene Energie).
Andy W

@AndyW, ich will diese Zahl nicht klopfen. Es ist eine Menge Arbeit, hauptsächlich b / c zu lesen, da es viele Informationen enthält. Dass es Sie für eine Weile anlockt und dort festhält, kann ein echtes Plus sein - ich wollte nicht, dass meine Beschreibung negativ ausfällt. OTOH, die Daten des OP sind so einfach, dass sie in einfacheren Zeichnungen dargestellt werden können.
gung - Wiedereinsetzung von Monica

Ein guter Punkt, wenn die Daten des OP nicht komplizierter sind als angegeben, ist es wahrscheinlich mehr Ärger als es wert ist! Ich möchte nicht einmal daran denken, das ursprüngliche Energiediagramm in eine Reihe von Punktdiagrammen umzuwandeln.
Andy W

@gung, Danke, dass du auf meinen Beitrag geantwortet hast. Ich stimme zu, der Mangel an Methoden sollte nicht als definitives Zeichen dafür angesehen werden, dass die Methode nicht gut oder nützlich ist, und ich habe definitiv keine Aussage zu Sankey-Diagrammen (SD) gemacht. In Bezug auf meine Daten ist das, was Sie in der Grafik sehen, nur die oberste Dimension meiner Daten. Ich habe Daten an 4 verschiedenen Standorten und von 7 verschiedenen Klinikern gesammelt und möchte diese Informationen wie eine Art von in mein Diagramm aufnehmen innerhalb des Gesamtflusses unterteilen. Bei den aktuellen Daten sieht es vielleicht übertrieben aus, aber ich glaube, eine SD wäre nützlich, wenn ich alle meine Variablen einbeziehe.
Eric Fail

Bei größerer Komplexität ist das Sankey-Diagramm wahrscheinlich die beste Wahl. Es lohnt sich auch, einige @ AndyW-Posts durchzusehen, wie die oben verlinkten. Er hat viele gute Antworten gegeben, die relevant sein könnten. Wenn Sie beispielsweise auf seinen Namen klicken, um zu seiner Seite zu navigieren, und dort auf das Tag für die Datenvisualisierung klicken, können Sie seine Beiträge durchsehen.
gung - Wiedereinsetzung von Monica

1

Wie wäre es mit der Verwendung von R-Code zum Schreiben einer SVG-Datei mit den nach Ihren Daten festgelegten Pfeilbreiten und einem einfachen Layout? Laden Sie dann Inkscape und biegen Sie die Pfeile herum, fügen Sie Beschriftungen usw. usw. zum Inhalt Ihres Herzens hinzu, um etwas Hübsches zu machen.

Offensichtliches Problem: Sie müssen Ihre gesamte Prettifizierung in Inkscape wiederholen, wenn sich Ihre Daten ändern (obwohl Sie möglicherweise Ihre hübsche SVG-Datei aus Inkscape als Vorlage verwenden und einfach die neuen Pfeilbreiten in ersetzen können).

Aber ehrlich gesagt, wenn dieses bunte Durcheinander von sich streunenden Kringeln oben ein gutes Sankey-Diagramm ist, würde ich es hassen, ein schlechtes auf vollem Magen zu sehen [obwohl mir ein Blick darauf für ein paar Minuten einen Hinweis gegeben hat worum es geht, eine gute Grafik sollte das nicht brauchen].


2
Ich wäre an einer besseren Visualisierung dieser Daten interessiert. Es gibt eine Menge Informationen in dieser Handlung (und
viele

2
Dan Carrs Mikrokarten benötigen Zeit, um die vollständige Grafik zu verarbeiten, ebenso wie detaillierte Straßenkarten. Beides ist nicht unbedingt eine schlechte Sache. Siehe James Chesires Blog-Post, Fast Thinking und Slow Thinking Visualization .
Andy W
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.