Auswahl zwischen qplot () und ggplot () in ggplot2 [geschlossen]

98

Ich fange an, das großartige ggplot2Paket zum Plotten in R zu verwenden, und eines der ersten Dinge, die ich mir vor jedem Plot frage, ist "Nun, werde ich es verwenden qplotoder ggplot?".

Ich verstehe, dass dies qploteine einfachere Syntax ggplotbietet und gleichzeitig maximale Funktionen und Flexibilität ermöglicht. Welche Funktion verwenden Sie jedoch am häufigsten, und haben Sie für jede Funktion einige genaue Anwendungsfälle? Verwenden Sie meistens qplotund ggplotnur für komplexe Handlungen oder verwenden Sie ggplotjedes Mal?

Vielen Dank für Ihr Feedback !

Juba
quelle

Antworten:

81

Wenn sowohl qplot als auch ggplot verfügbar sind, hängt das Kriterium davon ab, ob Daten in data.frame oder in separaten Variablen gespeichert sind.

x<-1:10
y<-rnorm(10)

qplot(x,y, geom="line") # I will use this
ggplot(data.frame(x,y), aes(x,y)) + geom_line() # verbose

d <- data.frame(x, y)

qplot(x, y, data=d, geom="line") 
ggplot(d, aes(x,y)) + geom_line() # I will use this

Für komplexere Diagramme ist natürlich ggplot () erforderlich, und ich speichere normalerweise Daten in data.frame. Daher verwende ich meiner Erfahrung nach selten qplot.

Und es klingt gut, immer ggplot () zu verwenden. Während qplot das Tippen spart, verlieren Sie viele Funktionen.

kohske
quelle
2
Akzeptiert, auch wenn jede Antwort nützlich ist, danke an alle!
Juba
Tolle Frage und eine hervorragende Antwort.
d8aninja
hervorragende Antwort in der Tat danke
Homam Bahrani
17

Ich bin neu bei R, habe aber nur daran gedacht, dies zu teilen.

 a <- c(1,2,3)

 b <- c(2,3,4)

 x <- qplot(a,b)

 y <- ggplot(data.frame(a,b), aes(a,b)) +geom_line()

Wenn ich den Wert der Variablen a und b ändere und dann x zeichne, werden die geänderten Werte berücksichtigt, wo y dies nicht tun würde. Während der Skripterstellung ist es also gut, ggplot so zu verwenden, als ob Sie qplot verwenden. Alle Diagramme entsprechen den zuletzt bereitgestellten Verweisen auf qplot.

Anishek
quelle
11

Ich denke, es hängt davon ab, wie oft und zu welchem ​​Zweck Sie ggplot2 verwenden möchten.

Ich benutze ggplot2 hauptsächlich für Grafiken in Veröffentlichungen. Dies bedeutet, dass ich tendenziell die erweiterten Funktionen benötige und mich daher nie darum gekümmert habe, etwas darüber zu lernen qplot. Da ich ungefähr vier Veröffentlichungen pro Jahr habe, verwende ich ggplot2 nicht genug, um mit der Syntax wirklich vertraut zu sein, und daher scheint es optimal, mich auf einen einzelnen Aspekt zu konzentrieren.

Wenn Sie jedoch jede Woche neue Datensätze erhalten, sind Sie wahrscheinlich daran interessiert, die Datensätze schnell zu erkunden und eine qualitativ hochwertige Darstellung zu erstellen . In diesem Fall lernen Sie beide. Sie werden genug Übung mit der Syntax bekommen und (irgendwann) Zeit sparen mit qplot.

csgillespie
quelle
8

Juba, ich habe festgestellt, dass man qplot für die meisten grundlegenden Plotanforderungen verwenden kann. Es ist ausreichend einfach und die Standardeinstellungen durchaus vernünftig, dass meine Studenten es ausschließlich verwenden und sie mit begrenzter Erfahrung hervorragende Grundstücke erstellen können. Und das von qplot [p <- qplot (etc)] erstellte Diagramm kann mit jedem der vollständigen Befehle geändert werden, die ggplot2 bereitstellt. Dies ist praktisch (sie werden alle auf dieselbe Weise gespeichert, unabhängig davon, wie sie erstellt wurden). Ich persönlich verwende qplot für fast alles und speichere ggplot für Funktionen.

Bryan Hanson
quelle
5
  • qplot ist die einfachste Wahl, wenn Sie mit Eingabevektoren arbeiten
  • ggplot benötigt einen data.frame als Eingabedatenstruktur.

Wenn Sie ein Histogramm erstellen möchten, benötigt qplot nur den Vektor der Vorkommen

#rnorm 
x <- rnorm(10)

#ggplot2 package: qplot
qplot(x, geom="histogram")

#ggplot2: using straight ggplot (requires conversion to data.frame)
ggplot(data.frame(x), aes(x)) + geom_histogram()
Natbusa
quelle
3

Eine weitere Variante von mir: Ich verwende sie, qplotwenn ich direkt in die Konsole tippe und ggplotwenn ich Skripte schreibe. Nachdem ich jedoch immer wieder festgestellt habe, dass ich einen Plot neu erstellen möchte, den ich 15 Minuten zuvor in die Konsole eingegeben habe, schreibe ich jetzt fast alle in ein Skript - daher verwende ich ggplot fast immer.

(Interessant, die Vielfalt der Antworten zu sehen!)

Matt Parker
quelle