Memilih antara qplot () dan ggplot () di ggplot2 [tertutup]

98

Saya mulai menggunakan ggplot2paket hebat untuk plotting di R, dan salah satu hal pertama yang saya tanyakan pada diri saya sebelum setiap plot adalah "baik, akan saya gunakan qplotatau ggplot?"

Saya mengerti bahwa qplotmenyediakan sintaks yang lebih sederhana sementara ggplotmemungkinkan fitur dan fleksibilitas maksimum, tetapi fungsi apa yang paling sering Anda gunakan, dan apakah Anda memiliki beberapa kasus penggunaan yang tepat untuk masing-masing? Apakah Anda menggunakan sebagian besar qplotdan ggplothanya untuk plot yang kompleks, atau apakah Anda menggunakan ggplotsetiap saat?

Terima kasih atas tanggapan Anda!

juba
sumber

Jawaban:

81

Bagi saya, jika qplot dan ggplot tersedia, kriterianya bergantung pada apakah data disimpan dalam data.frame atau variabel terpisah.

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

Tentu saja, plot yang lebih kompleks membutuhkan ggplot (), dan saya biasanya menyimpan data di data.frame, jadi menurut pengalaman saya, saya jarang menggunakan qplot.

Dan kedengarannya bagus untuk selalu menggunakan ggplot (). Sementara qplot menghemat pengetikan, Anda kehilangan banyak fungsi.

kohske
sumber
2
Diterima, meskipun setiap jawaban berguna, terima kasih untuk semuanya!
juba
Pertanyaan bagus, dan jawaban yang luar biasa.
d8aninja
jawaban luar biasa memang terima kasih
Homam Bahrani
17

Saya baru mengenal R tetapi baru saja berpikir untuk berbagi ini.

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

Jika saya mengubah nilai variabel a dan b dan kemudian plot x, itu akan memperhitungkan nilai yang diubah sedangkan y tidak. Jadi saat membuat skrip, akan lebih baik menggunakan ggplot seolah-olah Anda menggunakan qplot semua grafik akan sama dengan referensi terbaru yang disediakan untuk qplot.

anishek
sumber
11

Saya pikir itu tergantung pada seberapa sering dan untuk tujuan apa Anda berniat menggunakan ggplot2.

Saya terutama menggunakan ggplot2 untuk grafik dalam publikasi. Ini berarti saya cenderung membutuhkan fitur yang lebih canggih sehingga saya tidak pernah repot untuk mempelajarinya qplot. Selain itu, karena saya memiliki sekitar empat publikasi dalam setahun, saya tidak cukup menggunakan ggplot2 untuk benar-benar nyaman dengan sintaksnya, sehingga berkonsentrasi pada satu aspek tampaknya optimal.

Namun, jika Anda mendapatkan kumpulan data baru setiap minggu, Anda mungkin tertarik untuk menjelajahi kumpulan data dengan cepat dan menghasilkan plot berkualitas baik. Dalam hal ini, pelajari keduanya. Anda akan mendapatkan cukup latihan dengan sintaks dan (pada akhirnya) akan menghemat waktu qplot.

csgillespie.dll
sumber
8

Juba, saya telah menemukan bahwa seseorang dapat menggunakan qplot untuk sebagian besar kebutuhan perencanaan dasar. Ini cukup sederhana, dan standarnya cukup masuk akal, sehingga saya meminta mahasiswa sarjana saya menggunakannya secara eksklusif dan mereka dapat menghasilkan plot yang sangat baik dengan pengalaman terbatas. Dan plot yang dibuat oleh qplot [p <- qplot (etc)] dapat dimodifikasi dengan salah satu perintah lengkap yang disediakan ggplot2, yang berguna (semuanya disimpan dengan cara yang sama, tidak peduli bagaimana mereka dibuat). Jadi secara pribadi saya menggunakan qplot untuk hampir semua hal, dan menyimpan ggplot untuk bagian dalam fungsi.

Bryan Hanson
sumber
5
  • qplot adalah pilihan paling sederhana jika Anda berurusan dengan vektor input
  • ggplot membutuhkan data.frame sebagai struktur data masukan.

Saat Anda ingin membuat histogram, qplot hanya membutuhkan vektor kejadian

#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
sumber
3

Satu lagi varian dari saya: Saya gunakan qplotsaat saya mengetik langsung ke konsol, dan ggplotsaat saya menulis skrip. Tetapi setelah berulang kali menemukan bahwa saya ingin membuat ulang plot yang saya ketikkan ke konsol 15 menit sebelumnya, saya menulis hampir semuanya ke dalam skrip sekarang - jadi saya menggunakan ggplot hampir sepanjang waktu.

(Menarik untuk melihat keragaman jawaban!)

Matt Parker
sumber