Chọn giữa qplot () và ggplot () trong ggplot2 [đã đóng]


98

Tôi đang bắt đầu sử dụng ggplot2gói tuyệt vời để vẽ âm mưu trong R, và một trong những điều đầu tiên tôi tự hỏi bản thân trước mỗi âm mưu là "tốt, tôi sẽ sử dụng qplothay ggplot?"

Tôi hiểu rằng điều đó qplotcung cấp một cú pháp đơn giản hơn trong khi ggplotcho phép các tính năng và tính linh hoạt tối đa, nhưng chức năng bạn sử dụng nhiều nhất là gì và bạn có một số trường hợp sử dụng chính xác cho từng chức năng không? Bạn sử dụng hầu hết qplotggplotchỉ cho các âm mưu phức tạp, hay bạn sử dụng ggplotmọi lúc?

Cảm ơn phản hồi của bạn !

Câu trả lời:


81

Đối với tôi, nếu cả qplot và ggplot đều có sẵn, tiêu chí phụ thuộc vào việc dữ liệu được lưu trữ trong data.frame hay các biến riêng biệt.

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

Tất nhiên, các lô phức tạp hơn yêu cầu ggplot () và tôi thường lưu trữ dữ liệu trong data.frame, vì vậy theo kinh nghiệm của tôi, tôi hiếm khi sử dụng qplot.

Và có vẻ tốt khi luôn sử dụng ggplot (). Trong khi qplot tiết kiệm việc nhập, bạn sẽ mất rất nhiều chức năng.


2
Được chấp nhận, ngay cả khi mọi câu trả lời đều hữu ích, cảm ơn tất cả!
juba

Câu hỏi tuyệt vời và một câu trả lời tuyệt vời.
d8aninja

câu trả lời tuyệt vời thực sự cảm ơn bạn
Sao Homam Bahrani

17

Tôi mới làm quen với R nhưng chỉ nghĩ đến việc chia sẻ điều này.

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

Nếu tôi thay đổi giá trị của các biến a và b rồi vẽ biểu đồ x, nó sẽ tính đến các giá trị đã thay đổi nếu y thì không. Vì vậy, trong khi viết script, sẽ rất tốt nếu bạn sử dụng ggplot như thể bạn sử dụng qplot, tất cả các đồ thị sẽ bằng với các tham chiếu được cung cấp mới nhất cho qplot.


11

Tôi nghĩ rằng nó phụ thuộc vào tần suất và mục đích bạn định sử dụng ggplot2.

Tôi chủ yếu sử dụng ggplot2 cho đồ họa trong các ấn phẩm. Điều này có nghĩa là tôi có xu hướng cần các tính năng nâng cao hơn và vì vậy tôi chưa bao giờ bận tâm tìm hiểu về nó qplot. Ngoài ra, vì tôi có khoảng bốn ấn phẩm mỗi năm, tôi không sử dụng ggplot2 đủ để thực sự thoải mái với cú pháp và vì vậy việc tập trung vào một khía cạnh duy nhất có vẻ là tối ưu.

Tuy nhiên, nếu bạn nhận được các tập dữ liệu mới mỗi tuần, thì bạn có thể quan tâm đến việc khám phá nhanh các tập dữ liệu tạo ra biểu đồ chất lượng tốt. Trong trường hợp này, hãy học cả hai. Bạn sẽ có đủ thực hành với cú pháp và (cuối cùng) sẽ tiết kiệm thời gian với qplot.


8

Juba, tôi thấy rằng người ta có thể sử dụng qplot cho hầu hết các nhu cầu vẽ sơ đồ cơ bản. Nó đủ đơn giản và các giá trị mặc định khá hợp lý, mà tôi đã cho các sinh viên đại học của mình sử dụng riêng và họ có thể tạo ra những mảnh đất tuyệt vời với kinh nghiệm hạn chế. Và cốt truyện được tạo bởi qplot [p <- qplot (etc)] có thể được sửa đổi bằng bất kỳ lệnh đầy đủ nào mà ggplot2 cung cấp, điều này rất tiện lợi (chúng đều được lưu trữ theo cùng một cách, bất kể chúng được tạo ra như thế nào). Vì vậy, cá nhân tôi sử dụng qplot cho hầu hết mọi thứ và lưu ggplot cho bên trong các hàm.


5
  • qplot là lựa chọn đơn giản nhất nếu bạn đang xử lý các vectơ đầu vào
  • ggplot yêu cầu cấu trúc dữ liệu đầu vào data.frame.

Khi bạn muốn tạo biểu đồ, qplot chỉ cần vectơ số lần xuất hiện

#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

Một biến thể khác của tôi: Tôi sử dụng qplotkhi tôi đang nhập trực tiếp vào bảng điều khiển và ggplotkhi tôi đang viết tập lệnh. Nhưng sau khi tìm đi tìm lại rằng tôi muốn tạo lại một cốt truyện mà tôi đã nhập vào bảng điều khiển 15 phút trước đó, tôi viết gần như tất cả chúng thành một kịch bản - vì vậy tôi hầu như sử dụng ggplot.

(Thật thú vị khi thấy sự đa dạng của các câu trả lời!)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.