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 , 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, 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?
quelle
Antworten:
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.
quelle
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.
quelle
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].
quelle