การเลือกระหว่าง qplot () และ ggplot () ใน ggplot2 [ปิด]


98

ฉันกำลังเริ่มใช้ggplot2แพ็กเกจที่ยอดเยี่ยมสำหรับการวางแผนใน R และสิ่งแรกที่ฉันถามตัวเองก่อนที่แต่ละพล็อตคือ"ดีฉันจะใช้qplotหรือggplot?"

ฉันเข้าใจว่าqplotมีไวยากรณ์ที่ง่ายกว่าในขณะที่ggplotให้คุณสมบัติและความยืดหยุ่นสูงสุด แต่ฟังก์ชันใดที่คุณใช้มากที่สุดและคุณมีกรณีการใช้งานที่แม่นยำสำหรับแต่ละฟังก์ชันหรือไม่ คุณใช้เป็นส่วนใหญ่qplotและggplotเฉพาะสำหรับพล็อตที่ซับซ้อนหรือคุณใช้ggplotทุกครั้ง?

ขอบคุณสำหรับคำติชม!

คำตอบ:


81

สำหรับฉันถ้ามีทั้ง qplot และ ggplot เกณฑ์จะขึ้นอยู่กับว่าข้อมูลถูกเก็บไว้ใน data.frame หรือตัวแปรที่แยกต่างหาก

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

แน่นอนว่าพล็อตที่ซับซ้อนมากขึ้นต้องใช้ ggplot () และฉันมักจะเก็บข้อมูลใน data.frame ดังนั้นจากประสบการณ์ของฉันฉันไม่ค่อยใช้ qplot

และมันก็ฟังดูดีที่จะใช้ ggplot () เสมอ แม้ว่า qplot จะบันทึกการพิมพ์ แต่คุณจะสูญเสียฟังก์ชันการทำงานจำนวนมาก


2
ยอมรับแม้ว่าทุกคำตอบจะมีประโยชน์ขอบคุณทุกคน!
ก.ค.

คำถามที่ดีและคำตอบที่ยอดเยี่ยม
d8aninja

คำตอบที่ยอดเยี่ยมจริงๆขอบคุณ
Homam Bahrani

17

ฉันยังใหม่กับ R แต่คิดว่าจะแบ่งปันสิ่งนี้

 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 และ b แล้วลงจุด x มันจะคำนึงถึงค่าที่เปลี่ยนแปลงโดยที่ y จะไม่ทำ ดังนั้นในขณะที่เขียนสคริปต์ควรใช้ ggplot ราวกับว่าคุณใช้ qplot กราฟทั้งหมดจะเท่ากับการอ้างอิงล่าสุดที่ให้มากับ qplot


11

ฉันคิดว่ามันขึ้นอยู่กับว่าคุณตั้งใจจะใช้ ggplot2 บ่อยแค่ไหนและเพื่อวัตถุประสงค์อะไร

ฉันใช้ ggplot2 เป็นหลักสำหรับกราฟิกในสิ่งพิมพ์ ซึ่งหมายความว่าผมมีแนวโน้มที่จะต้องมีคุณสมบัติที่สูงขึ้นและอื่น ๆ qplotผมไม่เคยใส่ใจที่จะเรียนรู้เกี่ยวกับ นอกจากนี้เนื่องจากฉันมีสิ่งพิมพ์ประมาณสี่ครั้งต่อปีฉันจึงไม่ได้ใช้ ggplot2 มากพอที่จะรู้สึกสบายใจกับไวยากรณ์ดังนั้นการมุ่งเน้นไปที่แง่มุมเดียวจึงเหมาะสมที่สุด

อย่างไรก็ตามหากคุณได้รับชุดข้อมูลใหม่ในแต่ละสัปดาห์คุณอาจสนใจที่จะสำรวจชุดข้อมูลอย่างรวดเร็วและสร้างพล็อตที่มีคุณภาพดี ในกรณีนี้ให้เรียนรู้ทั้งสองอย่าง คุณจะได้รับการปฏิบัติที่เพียงพอกับไวยากรณ์และจะ (ในที่สุด) qplotประหยัดเวลาด้วย


8

Juba ฉันพบว่าเราสามารถใช้ qplot สำหรับการวางแผนพื้นฐานส่วนใหญ่ได้ มันง่ายพอสมควรและค่าเริ่มต้นก็ค่อนข้างสมเหตุสมผลที่ฉันให้นักศึกษาระดับปริญญาตรีของฉันใช้มันโดยเฉพาะและพวกเขาสามารถสร้างแผนการที่ยอดเยี่ยมด้วยประสบการณ์ที่ จำกัด และพล็อตที่สร้างโดย qplot [p <- qplot (ฯลฯ )] สามารถแก้ไขได้โดยคำสั่งเต็มใด ๆ ที่ ggplot2 มีให้ซึ่งมีประโยชน์ (ซึ่งทั้งหมดจะถูกจัดเก็บในลักษณะเดียวกันไม่ว่าจะสร้างขึ้นด้วยวิธีใดก็ตาม) โดยส่วนตัวแล้วฉันใช้ qplot สำหรับทุกอย่างและบันทึก ggplot สำหรับภายในฟังก์ชัน


5
  • qplot เป็นตัวเลือกที่ง่ายที่สุดหากคุณกำลังจัดการกับเวกเตอร์อินพุต
  • ggplot ต้องการ data.frame เป็นโครงสร้างข้อมูลอินพุต

เมื่อคุณต้องการสร้างฮิสโตแกรม qplot ต้องการเฉพาะเวกเตอร์ของเหตุการณ์ที่เกิดขึ้น

#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

อีกหนึ่งตัวแปรจากฉัน: ฉันใช้qplotเมื่อฉันพิมพ์ลงในคอนโซลโดยตรงและggplotเมื่อฉันเขียนสคริปต์ แต่หลังจากค้นพบซ้ำแล้วซ้ำเล่าว่าฉันต้องการสร้างพล็อตที่ฉันพิมพ์ลงในคอนโซลก่อนหน้านี้ 15 นาทีฉันเขียนเกือบทั้งหมดลงในสคริปต์ตอนนี้ดังนั้นฉันจึงใช้ ggplot เกือบตลอดเวลา

(น่าสนใจเพื่อดูความหลากหลายของคำตอบ!)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.