Gplplot2 में qplot () और ggplot () के बीच चयन [बंद]


98

मैं ggplot2आर में प्लॉटिंग के लिए शानदार पैकेज का उपयोग करना शुरू कर रहा हूं , और प्रत्येक प्लॉट से पहले मैं अपने आप से एक चीज पूछता हूं "अच्छा, क्या मैं उपयोग करूंगा 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

शानदार जवाब वास्तव में धन्यवाद
होमम बहारानी

17

मैं आर के लिए नया हूं लेकिन बस इसे साझा करने के बारे में सोचा।

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

यदि मैं चर और ख के मान को बदल देता हूं और फिर x को प्लॉट करता हूं, तो यह उन बदले हुए मूल्यों को ध्यान में रखेगा जहां y नहीं होगा। इसलिए स्क्रिप्टिंग करते समय ggplot का उपयोग करना अच्छा होगा क्योंकि यदि आप qplot का उपयोग करते हैं तो सभी रेखांकन qplot के नवीनतम उपलब्ध संदर्भों के बराबर होंगे।


11

मुझे लगता है कि यह निर्भर करता है कि आप कितनी बार और किस उद्देश्य से ggplot2 का उपयोग करना चाहते हैं।

मैं मुख्य रूप से प्रकाशनों में ग्राफिक्स के लिए ggplot2 का उपयोग करता हूं। इसका मतलब है कि मुझे और अधिक उन्नत सुविधाओं की आवश्यकता है और इसलिए मैंने कभी इसके बारे में जानने की जहमत नहीं उठाई qplot। इसके अलावा, चूंकि मेरे पास एक वर्ष में चार प्रकाशन हैं, इसलिए मैं ggplot2 का उपयोग नहीं कर रहा हूं, जो वाक्य रचना के साथ वास्तव में सहज है और इसलिए किसी एक पहलू पर ध्यान केंद्रित करना इष्टतम लगता है।

हालांकि, यदि आपको प्रत्येक सप्ताह नए डेटा सेट मिलते हैं, तो आप संभवतः डेटा सेटों की शीघ्रता से खोज करने और अच्छी गुणवत्ता वाले प्लॉट का निर्माण करने में रुचि रखते हैं । इस मामले में, दोनों सीखें। आपको सिंटैक्स के साथ पर्याप्त अभ्यास मिलेगा और (अंततः) समय बचाने के साथ होगा qplot


8

जुबा, मैंने पाया है कि सबसे बुनियादी प्लॉटिंग जरूरतों के लिए कोई भी कप्लोट का उपयोग कर सकता है। यह पर्याप्त रूप से सरल है, और यह बहुत ही उचित है, कि मेरे पास मेरे स्नातक छात्र इसे विशेष रूप से उपयोग करते हैं और वे सीमित अनुभव के साथ उत्कृष्ट भूखंडों का उत्पादन कर सकते हैं। और 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 का उपयोग करता हूं।

(उत्तरों की विविधता को देखने के लिए दिलचस्प!)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.