Ggplot2'de qplot () ve ggplot () arasında seçim yapma [kapalı]


98

ggplot2R'de çizim yapmak için harika paketi kullanmaya başlıyorum ve her olay örgüsünden önce kendime sorduğum ilk şey "peki, kullanacak mıyım qplotyoksa ggplot?"

Maksimum özellik ve esneklik qplotsağlarken daha basit bir sözdizimi sağladığını anlıyorum ggplot, ancak en çok kullandığınız işlev nedir ve her biri için kesin kullanım durumlarınız var mı? Çoğunlukla qplotve ggplotyalnızca karmaşık grafikler için mi kullanıyorsunuz yoksa ggplother zaman mı kullanıyorsunuz ?

Geri bildiriminiz için teşekkürler !

Yanıtlar:


81

Bana gelince, hem qplot hem de ggplot mevcutsa, kriter verilerin data.frame'de mi yoksa ayrı değişkenlerde mi depolandığına bağlıdır.

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

Elbette, daha karmaşık grafikler ggplot () gerektirir ve verileri genellikle data.frame'de depolarım, bu yüzden deneyimime göre, nadiren qplot kullanırım.

Ve her zaman ggplot () kullanmak kulağa hoş geliyor. Qplot yazmayı kaydederken, birçok işlevi kaybedersiniz.


2
Herkese teşekkürler, her cevap faydalı olsa bile kabul edildi!
juba

Harika bir soru ve mükemmel bir cevap.
d8aninja

mükemmel cevap gerçekten teşekkür ederim
Homam Bahrani

17

R'de yeniyim ama bunu paylaşmayı düşündüm.

 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()

A ve b değişkenlerinin değerini değiştirirsem ve sonra x'i çizersem, y'nin değişmeyeceği yerlerde değişen değerleri hesaba katacaktır. Bu yüzden komut dosyası oluştururken ggplot'u qplot kullanıyormuşsunuz gibi kullanmak iyi olacaktır, tüm grafikler qplot'a sağlanan en son referanslara eşit olacaktır.


11

Sanırım bu, ggplot2'yi ne sıklıkla ve ne amaçla kullanmak istediğinize bağlı.

Yayınlardaki grafikler için ağırlıklı olarak ggplot2 kullanıyorum. Bu, daha gelişmiş özelliklere ihtiyaç duyma eğiliminde olduğum ve bu yüzden bir şeyler öğrenmeye hiç zahmet etmediğim anlamına geliyor qplot. Ayrıca, yılda yaklaşık dört yayınım olduğu için, ggplot2'yi sözdizimi konusunda gerçekten rahat olacak kadar kullanmıyorum ve bu nedenle tek bir konuya odaklanmak en uygun görünüyor.

Bununla birlikte, her hafta yeni veri kümeleri alırsanız, muhtemelen veri kümelerini hızlı bir şekilde keşfetmek ve kaliteli bir grafik oluşturmakla ilgileniyorsunuzdur . Bu durumda ikisini de öğrenin. Sözdizimi ile yeterince pratik yapacak ve (sonunda) ile zaman kazanacaksınız qplot.


8

Juba, qplot'un çoğu temel çizim ihtiyacı için kullanılabileceğini buldum. Yeterince basit ve varsayılanlar oldukça makul, lisans öğrencilerimin onu özel olarak kullanmasını sağlıyorum ve sınırlı deneyime sahip mükemmel grafikler üretebiliyorlar. Ve qplot [p <- qplot (vb)] tarafından oluşturulan grafik, ggplot2'nin sağladığı tam komutlardan herhangi biri tarafından değiştirilebilir, bu da kullanışlıdır (nasıl oluşturulmuş olurlarsa olsunlar, hepsi aynı şekilde saklanır). Bu yüzden kişisel olarak çoğu şey için qplot kullanıyorum ve ggplot'u fonksiyonların içi için saklıyorum.


5
  • Girdi vektörleriyle uğraşıyorsanız, qplot en basit seçimdir
  • ggplot, girdi veri yapısı olarak bir data.frame gerektirir.

Bir histogram oluşturmak istediğinizde, qplot yalnızca oluşum vektörüne ihtiyaç duyar

#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()

3

Benden bir varyasyon daha: qplotDoğrudan konsola ggplotyazarken ve komut dosyaları yazarken kullanıyorum. Ancak, 15 dakika önce konsola yazdığım bir planı tekrar tekrar oluşturmak istediğimi tekrar tekrar bulduktan sonra, hemen hemen hepsini bir senaryoya yazıyorum - bu yüzden neredeyse her zaman ggplot kullanıyorum.

(Cevapların çeşitliliğini görmek ilginç!)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.