2010-09-20 14 views
15

Ich beginne gerade mit R und beginne mit der Erstellung von Charts. Mir ist bewusst, dass es mindestens drei verschiedene Plot-Pakete gibt, das Standard-Paket, ggplot2 und das Gitter.Beziehung zwischen Plotten von Paketen in R

Sind diese Pakete komplementär oder decken sie den gleichen Grund? Wenn sie komplementär sind, wann verwende ich sie? Wenn sie den gleichen Boden abdecken, welchen sollte ich als neuer R-Benutzer meine Energie in die Beherrschung bringen?

Antwort

23

Es gibt 4 Plotting-Systeme. Es gibt Standard, Gitter, Gitter und ggplot2. Bei den letzteren beiden handelt es sich um Systeme auf höherer Ebene, die auf den ersten beiden Systemen aufbauen. Jeder hat Vor- und Nachteile.

Standardgrafiken geben Ihnen die absolute Kontrolle über Plots und es ist großartig, ein Plot so zu machen, wie Sie es mögen. Lattice wurde entwickelt, um Situationen zu adressieren, in denen Sie Arrays von Plots wünschen. Es ist sehr flexibel und kann fast jede Funktion über Ihre Daten und über beliebige Variablen darstellen. Wenn Sie möchten, dass eine beliebige Funktion auf die Daten jedes Probanden angewendet wird und als Gitter von Plots dargestellt wird, ist Gitter Ihr Baby. Es ist auf Raster und fast die einzige Art und Weise gebaut, wie jemand das Grid-Paket verwendet.

Die neueste Version, ggplot2, ist sowohl ein Grafikpaket als auch eine neue Philosophie in der grafischen Darstellung. Es basiert auf "The Grammar of Graphics" von Wilkinson und versucht genau das zu tun, eine Grammatik für Grafiken zu generieren. Man muss nur die höhere Syntax von Begriffen wie geom (was man plotten), stat (Statistiken zu den Daten), facet (einzelne Panels) lernen und man kann sehr komplexe Graphen konstruieren. Sie sind im Allgemeinen sehr schön, besonders für den elektronischen Vertrieb. Leider ist eine genaue Kontrolle jedes einzelnen Details nicht möglich. Es gibt bestimmte Dinge, die Sie einfach nicht anpassen können. Trotzdem haben viele den gesunden Schluss gezogen, dass es ein kleiner Preis ist, den man für die einfache Beschreibung hochwertiger Parzellen zahlen kann.

Werfen Sie einen Blick auf einige der Standard- und Beispielgraphen für ggplot2. Wenn sie dich ansprechen, würde ich vorschlagen, dass du dort anfängst. Wenn du kannst, versuche zu lernen, alles durch die grundlegende Grammatikmethode zu machen. Ich persönlich denke, es ist ein Fehler, dass Hadley die Komfortfunktionen als Haupthilfe auf der Website hat. Es scheint den ganzen Zweck von ggplot2 zu untergraben. Eine abgekürzte Syntax wird als die primäre Schnittstelle für die Hilfe präsentiert, aber das Buch dreht sich alles um die Philosophie und grundlegende Grammatik.

(ich sage, dass aber ich habe die meisten meiner Plotten in Basis Grafiken, weil ich es Spaß Gebäude jede einzelne Komponente der Graphen zu finden.)

+0

Welche Details, insbesondere beziehen Sie sich darauf, kann nicht mit ggplot2 gesteuert werden? Ich stimme zu, dass es viele "versteckte" Möglichkeiten gibt, aber sie sind definitiv da. (theme_get(), zum Beispiel) –

+0

Ich nehme an, ich könnte das noch weiter ausbauen ... Es gibt eine Ebene, auf der ggplot gut dokumentiert ist und verwendet wird, bei der die Kontrolle minimal ist. Dann gibt es ein anderes, wo es ein wenig mehr gibt, sobald Sie viele der versteckten Optionen finden ... und dann gibt es Dinge, die Sie einfach nicht kontrollieren können wie unregelmäßige Facettierung oder die Auflösung und die Einseitigkeit von Glättungsfunktionen (was ist, wenn ich das Top füllen möchte) rot und unten blau?). Ich kann wirklich nicht alles auflisten, was du nicht kontrollieren kannst. Nicht sicher, ob dies geändert wurde, aber etwas so einfaches wie Label-Offset von der Achse * war * unmöglich. – John

+1

Das heißt, ich denke, es behandelt 95% + von Graphen besser als Menschen selbst damit umgehen könnten und dass dies relativ esoterische Probleme für viele sind. – John

7

Die drei Pakete sind eigentlich drei verschiedene Plotkonzepte. Das Standard-Plotting-Gerät geht schnell, wenn Sie wissen, was Sie tun, und ist in meinen Augen ziemlich intuitiv in dem Sinne, dass alle Befehle mit bestimmten Elementen eines Graphen (Plot, Titel, Achse, Beschriftungen, Legende, .. .). Diese Diagramme sind ziemlich flexibel im Layout, und ich finde sie nützlich für die meisten statistischen Standardgrafiken und ziemlich einfach 2D-Graphen.

Gitter ist ein gitterbasiertes Zeichengerät und ermöglicht viel mehr Flexibilität. Sie können im Grunde alles, was Sie wollen, plotten, wie auf der R Graph Gallery gezeigt. Graphen können auch kommentiert werden. Gitter ist -wieder, in meinen Augen- sehr nützlich für anpassbare High-End-Graphen. Ich verwende es hauptsächlich, wenn ich Farbkarten, 3D-Visualisierungen und kombinierte Graphen verschiedener Teilmengen meiner Daten mache (z. B. im Modellbau, für die Auswirkungen der verschiedenen Begriffe). Siehe auch Using lattice graphics in R.

ggplot2 ist eigentlich ein Versuch, das Gute beider Systeme zu kombinieren: Sie behalten den größten Teil der Flexibilität des Gitters, aber Sie arbeiten an einfach definierten Graphobjekten, wie Sie es mit dem Standardplotten tun. Die grafische Ausgabe ist im Allgemeinen besser als die Standardeinstellungen im Standardpaket und mit weniger Aufwand als mit Gitter. Persönlich habe ich nur wenig Erfahrung mit ggplot2, aber es sieht definitiv vielversprechend aus. Ich bevorzuge immer noch das Basis-Graph-Paket, aber das hat wahrscheinlich mehr damit zu tun, dass ich daran gewöhnt bin. Alte Affen und neue Tricks und all das ...

Grundsätzlich würde ich sagen, mit dem zu gehen, mit dem Sie sich am wohlsten fühlen. Ich würde definitiv zumindest die Grundlagen des Standardpakets lernen, aber von dort denke ich, ggplot2 gibt Ihnen alles, was Sie brauchen, wenn Sie nicht in hochkarätige Grafiken gehen. Wenn Sie wirklich maßgeschneiderte komplexe Graphen erstellen möchten, kann das Kennenlernen des Gitters Ihnen nur helfen. Aber ansonsten bieten die anderen beiden alles, was Sie brauchen, und sind ziemlich direkt im Einsatz.

+0

Danke für die in der Tiefe Antwort. Nur eine Frage - was meinst du mit 'high-profile graphics'? – fmark

+0

Nur ein Begriff, um die sehr schick aussehenden komplexen Graphen zu benennen, die zum Beispiel in der Graph Gallery zu finden sind. Meine Wortwahl ist nicht immer die beste, da Englisch nicht meine Muttersprache ist. –

+0

Danke für die Klarstellung. – fmark