फ़ंक्शन परिभाषा कि @Richard Scriven टिप्पणी में संदर्भित है plot-construction.r
में परिभाषित किया गया है, जो इसे स्पष्ट कर सकता है। आपको यह देखने के लिए स्रोत के माध्यम से जाना होगा कि वास्तव में उन दो (अप्रत्याशित) फ़ंक्शन क्या करते हैं (चाहे कॉल का एलएचएस theme
या ggplot
ऑब्जेक्ट है) लेकिन नाम आपको एक बहुत अच्छा विचार देना चाहिए। वापसी मूल्य e1
e2
"जोड़कर" संशोधित है।
"+.gg" <- function(e1, e2) {
# Get the name of what was passed in as e2, and pass along so that it
# can be displayed in error messages
e2name <- deparse(substitute(e2))
if (is.theme(e1)) add_theme(e1, e2, e2name)
else if (is.ggplot(e1)) add_ggplot(e1, e2, e2name)
}
तो, हाँ, +
इनहेरिट वर्ग gg
(सभी ggplot2
वस्तुओं) वस्तुओं के लिए ओवरलोड हो गया है।
मुझे लगता है कि 'पाइप' (@ एलिस्टायर की टिप्पणी) एक भ्रामक समानता है; यह मानक ओपीएस समूह जेनेरिक की शैली में बहुत अधिक है।
स्रोत
2016-08-08 06:23:10
यह खोजना आसान नहीं है, लेकिन 'मदद ("+। Gg")' की जानकारी आपके पास है। मुझे पता चला कि '+ .gg' ggplot2 लोड के साथ 'विधियों ("+")' का उपयोग कर मौजूद है। –
हां और नहीं; यह प्रभावी रूप से एक पाइप है (हैडली ने ggplot2 के बाद magrittr की खोज की/coauthored magrittr, और कहा है कि अब ggplot को बदलने में बहुत देर हो चुकी है), लेकिन यह वास्तव में एक ggplot ऑब्जेक्ट में जोड़ रहा है, जिसे कॉल पूरा होने तक प्लॉट नहीं किया गया है। तो हाँ, आप इसे कार्यों के बीच 'डेटा' पैरामीटर को पारित करने के बारे में सोच सकते हैं, लेकिन इसके बारे में सोचने के लिए और अधिक उपयोगी है ... additive। ऑब्जेक्ट्स के अंदर क्या है इसका एक अनुमान प्राप्त करने के लिए 'ggplot_build' में एक साजिश लपेटें। – alistaire
स्पष्टीकरण के लिए धन्यवाद दोस्तों! – mimic