आर

2010-09-20 15 views
15

में पैकेजों की साजिश के बीच संबंध मैं आर के साथ शुरू कर रहा हूं, और चार्ट बनाने शुरू कर रहा हूं। मुझे पता है कि कम से कम तीन अलग-अलग प्लॉटिंग पैकेज हैं, मानक एक, ggplot2 और जाली।आर

क्या ये पैकेज पूरक हैं, या क्या वे एक ही जमीन को कवर करते हैं? यदि वे पूरक हैं, तो मैं प्रत्येक का उपयोग कब करूं? यदि वे एक ही जमीन को कवर करते हैं, तो मुझे एक नया आर उपयोगकर्ता के रूप में कौन सा होना चाहिए, मेरी ऊर्जा को मास्टरिंग में डाल दें?

उत्तर

23

4 प्लॉटिंग सिस्टम हैं। मानक, ग्रिड, जाली, और ggplot2 है। उत्तरार्द्ध दो पूर्व स्तर पर बनाए गए उच्च स्तरीय सिस्टम हैं। प्रत्येक के पास फायदे और नुकसान होते हैं।

मानक ग्राफिक्स आपको भूखंडों पर पूर्ण नियंत्रण देता है और आपको एक प्लॉट बनाने के लिए बहुत अच्छा तरीका है। जाली को उन परिस्थितियों को हल करने के लिए विकसित किया गया था जहां आप भूखंडों के सरणी चाहते हैं। यह बहुत लचीला है और आपके डेटा पर और किसी भी चर पर किसी भी फ़ंक्शन को प्लॉट कर सकता है। यदि आप प्रत्येक विषय के डेटा पर एक मनमाना फ़ंक्शन लागू करना चाहते हैं और भूखंडों के ग्रिड के रूप में प्रस्तुत किया जाता है, तो जाली आपका बच्चा है। यह ग्रिड पर बनाया गया है और लगभग एकमात्र तरीका ग्रिड पैकेज का उपयोग करता है।

नवीनतम एक, ggplot2, ग्राफ़िंग पैकेज और ग्राफ़िंग में एक नया दर्शन दोनों है। यह विल्किन्सन द्वारा "ग्राफिक्स के व्याकरण" पर आधारित है और वास्तव में ऐसा करने का प्रयास करता है, ग्राफिक्स के लिए व्याकरण उत्पन्न करता है। केवल एक को जियोम (जो आप प्लॉट करते हैं), स्टेट (डेटा पर आंकड़े), पहलू (व्यक्तिगत पैनल) जैसे उच्च स्तर के सिंटैक्स सीखना है, और आप बहुत जटिल ग्राफ बना सकते हैं। वे आम तौर पर इलेक्ट्रॉनिक वितरण के लिए काफी सुंदर आते हैं। दुर्भाग्यवश, प्रत्येक व्यक्तिगत विवरण का अच्छा नियंत्रण उपलब्ध नहीं है। ऐसी कुछ चीजें हैं जिन्हें आप आसानी से समायोजित नहीं कर सकते हैं। उस ने कहा, कई लोग इस निष्कर्ष पर पहुंचे हैं कि उच्च गुणवत्ता वाले भूखंडों का वर्णन करने के आसान तरीके के लिए भुगतान करना एक छोटी सी कीमत है।

ggplot2 के लिए कुछ डिफ़ॉल्ट और उदाहरण आलेखों पर नज़र डालें। अगर वे आपसे अपील करते हैं तो मैं सुझाव दूंगा कि आप वहां से शुरू करें। यदि आप कर सकते हैं, तो बुनियादी व्याकरण विधि के माध्यम से सब कुछ करने के लिए सीखने का प्रयास करें। मुझे व्यक्तिगत रूप से लगता है कि यह एक गलती है कि हैडली के पास वेबसाइट पर मुख्य सहायता के रूप में सुविधा कार्य है। ऐसा लगता है कि ggplot2 के पूरे उद्देश्य को कमजोर करना है। एक संक्षिप्त वाक्यविन्यास सहायता के लिए प्राथमिक इंटरफ़ेस के रूप में प्रस्तुत किया जाता है लेकिन पुस्तक दर्शन और मौलिक व्याकरण के बारे में है।

(मैं कहना है कि लेकिन मैं आधार ग्राफिक्स में मेरी अंकन के सबसे अधिक है क्योंकि मैं इसे मज़ा इमारत रेखांकन के हर एक घटक पाते हैं।)

+0

कौन सा विवरण, विशेष रूप से आप इसका जिक्र कर रहे हैं जिसे ggplot2 के साथ नियंत्रित नहीं किया जा सकता है? मैं इस बात से सहमत हूं कि बहुत सारे "छिपा" विकल्प हैं, लेकिन वे निश्चित रूप से वहां हैं। (theme_get(), उदाहरण के लिए) –

+0

मुझे लगता है कि मैं उस पर आगे बढ़ सकता हूं ... एक स्तर है जिस पर ggplot अच्छी तरह से प्रलेखित है और इसका उपयोग किया जाता है जिस पर नियंत्रण न्यूनतम होता है। फिर वहां एक और चीज है, जहां आपको कुछ छिपे हुए विकल्प मिलते हैं ... और फिर ऐसी चीजें हैं जिन्हें आप अनियमित रूपरेखा या चिकनाई कार्यों के संकल्प और पक्षपात की तरह नियंत्रित नहीं कर सकते हैं (यदि मैं शीर्ष को भरना चाहता हूं तो क्या होगा लाल और नीचे नीला?)। मैं वास्तव में उन सभी चीजों को सूचीबद्ध नहीं कर सकता जिन्हें आप नियंत्रित नहीं कर सकते। यह सुनिश्चित नहीं है कि यह बदला गया है लेकिन धुरी से लेबल ऑफ़सेट के रूप में सरल कुछ * असंभव था। – John

+1

उसने कहा, मुझे लगता है कि यह 9 5% ग्राफों को बेहतर तरीके से संभालने से बेहतर है और लोगों के लिए यह अपेक्षाकृत गूढ़ मुद्दे हैं। – John

7

तीन पैकेज वास्तव में तीन अलग-अलग साजिश अवधारणाएं हैं। यदि आप जानते हैं कि आप क्या कर रहे हैं, तो मानक साजिश उपकरण तेजी से चला जाता है, और मेरी आंखों में - इस अर्थ में अंतर्ज्ञानी है कि सभी आदेश ग्राफ (साजिश, शीर्षक, धुरी, लेबल, किंवदंती, आदि के विशेष तत्वों से निपटते हैं। ।)। ये ग्राफ लेआउट में बहुत लचीले हैं, और मैं उन्हें मानक सांख्यिकीय साजिश और काफी सीधे-आगे 2 डी ग्राफ के लिए उपयोगी पाते हैं।

लैटिस एक ग्रिड-आधारित प्लॉटिंग डिवाइस है, और बहुत अधिक लचीलापन की अनुमति देता है। R Graph Gallery पर दिखाए गए अनुसार आप मूल रूप से अपनी इच्छानुसार कुछ भी प्लॉट कर सकते हैं। ग्राफ भी एनोटेट किया जा सकता है। जाली है, मेरी आंखों में, अनुकूलन योग्य उच्च अंत ग्राफ के लिए बहुत उपयोगी है। मैं इसे मुख्य रूप से उपयोग करता हूं जब मैं रंगीन मानचित्र, 3 डी-विज़ुअलाइजेशन और मेरे डेटा के विभिन्न सबसेट के संयुक्त ग्राफ (उदाहरण के लिए मॉडल निर्माण में, विभिन्न शर्तों के प्रभाव के लिए) बना रहा हूं। Using lattice graphics in R भी देखें।

ggplot2 वास्तव में दोनों प्रणालियों के अच्छे संयोजन को जोड़ने का प्रयास है: आप जाली की अधिकांश लचीलापन रखते हैं, लेकिन आप मानक साजिश के साथ आसानी से परिभाषित ग्राफ ऑब्जेक्ट्स पर काम करते हैं। ग्राफिकल आउटपुट मानक पैकेज में मानक सेटिंग्स की तुलना में सामान्य रूप से बेहतर है, और जाली के साथ कम परेशानी के साथ। व्यक्तिगत रूप से, मेरे पास ggplot2 के साथ केवल थोड़ा सा अनुभव है, लेकिन यह निश्चित रूप से आशाजनक दिखता है। मैं अभी भी बेस ग्राफ़ पैकेज पसंद करता हूं, लेकिन शायद इस तथ्य के साथ ऐसा करने के लिए और अधिक है कि मैं उस पर उपयोग कर रहा हूं। पुराने बंदरों और नई चालें और सभी ...

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

+0

गहराई में जवाब के लिए धन्यवाद। सिर्फ एक सवाल - 'उच्च प्रोफ़ाइल ग्राफिक्स' से आपका क्या मतलब है? – fmark

+0

उदाहरण के लिए ग्राफ गैलरी पर पाया जा सकता है कि बहुत फैंसी दिखने वाले जटिल ग्राफ नाम देने के लिए बस एक शब्द। शब्दों की मेरी पसंद हमेशा सर्वोत्तम नहीं होती है, क्योंकि अंग्रेजी मेरी मातृभाषा नहीं है। –

+0

स्पष्टीकरण के लिए धन्यवाद। – fmark