दिलचस्प पोस्ट
_t (अंडरस्कोर-टी) द्वारा किस प्रकार का अनुसरण किया जाता है? समय के लायक सूक्ष्म अनुकूलन क्या है? एक वेब। कॉन्फिग फ़ाइल का उपयोग कर HTTPS को कैसे लागू करें तत्वों को स्विच करने के लिए कोई नेटी jQuery फ़ंक्शन है? jquery ui datepicker और mvc दृश्य मॉडल प्रकार datetime बाश में दो फ्लोटिंग प्वाइंट नंबर की तुलना कैसे करें? INNER बनाम WHERE खंड में शामिल हों I बिग-ओ आठ साल के बच्चों के लिए? मैं RichTextBox में एक छवि कैसे सम्मिलित कर सकता हूं? "~" (टिल्ड / स्क्विगल / ट्विडल) सीएसएस चयनकर्ता का मतलब क्या है? नवीनतम एपकापैट और सहायता लाइब्रेरी को अपडेट करने के बाद DexIndexOverflowException समस्या usr / bin / ld: नहीं मिल सकता है -l <nameOfTheLibrary> स्विंगवार्कर के निष्पादन को कैसे रद्द करें? मुझे ईएस 6 आयात के लिए कुरकुरा ब्रेसिज़ का उपयोग कब करना चाहिए? स्विफ्ट में इंटरनेट कनेक्शन उपलब्धता की जांच करें

जीजीप्लोट लाइन चार्ट में मल्टी-पंक्ति x- अक्ष लेबल

संपादित करें: इस प्रश्न को डुप्लिकेट के रूप में चिह्नित किया गया है, लेकिन यहां प्रतिक्रियाओं की कोशिश की गई है और काम नहीं किया क्योंकि सवाल में मामला लाइन चार्ट है, एक बार चार्ट नहीं। उन विधियों को लागू करने से प्रत्येक पंक्ति के लिए 5 लाइनें, 1 के साथ एक चार्ट का उत्पादन होता है – उपयोगी नहीं। जो कोई भी नकल के रूप में चिह्नित करने के लिए मतदान करता है, क्या वास्तव में उन तरीकों की कोशिश करें जो इस प्रश्न के साथ दिए गए नमूना डाटासेट पर उपलब्ध हैं? यदि हां, तो कृपया उत्तर के रूप में पोस्ट करें।

मूल प्रश्न:

एक्सेल धुरी चार्ट में एक फीचर है जो बहुस्तरीय कड़े अक्षों की अनुमति देता है.मैं जीजीप्लोट (या आर में किसी अन्य साजिश रचने वाले पैकेज) के साथ एक ही चीज़ करने का एक तरीका ढूँढ़ने की कोशिश कर रहा हूं।

निम्न डेटासेट पर विचार करें:

 set.seed(1) df=data.frame(year=rep(2009:2013,each=4), quarter=rep(c("Q1","Q2","Q3","Q4"),5), sales=40:59+rnorm(20,sd=5)) 

यदि यह एक एक्सेल धुरी सारणी में आयात किया जाता है, तो यह निम्न चार्ट बनाने के लिए सरल है:

नोट करें कि एक्स-अक्ष के दो स्तर हैं, एक तिमाही के लिए और एक समूह वैल्यू, वर्ष के लिए। बहुस्तरीय कुल्हाड़ियों ggplot साथ संभव हो?

एनबी: पहलुओं के साथ एक हैक जो कुछ समान बनाता है, लेकिन यह ऐसा नहीं है जो मैं देख रहा हूं।

 library(ggplot2) ggplot(df) + geom_line(aes(x=quarter,y=sales,group=year))+ facet_grid(.~year,scales="free") 

वेब के समाधान से एकत्रित समाधान "जीजीप्लोट लाइन चार्ट में मल्टी-पंक्ति x- अक्ष लेबल"

हम डीफॉल्ट एक्स एक्सिस टेक्स्ट ( axis.title.x / axis.text.x = element_blank() ) को हटाने के लिए theme में तर्कों का उपयोग करते हैं और अतिरिक्त मार्जिन जोड़ते हैं ( plot.margin । मार्जिन)।

एनोॉटेट ( ggplot_gtable(ggplot_build( annotate(geom = "text", नए लेबल जोड़ दिए जाते हैं। प्लॉट ऑब्जेक्ट को ग्रोब ( ggplot_gtable(ggplot_build( )) में परिवर्तित करके एक्स एक्सिस लेबल्स का कतरन बंद किया जा सकता है।

 library(ggplot2) g1 <- ggplot(data = df, aes(x = interaction(year, quarter, lex.order = TRUE), y = sales, group = 1)) + geom_line(colour = "blue") + coord_cartesian(ylim = c(35, 65), expand = FALSE) + annotate(geom = "text", x = seq_len(nrow(df)), y = 34, label = df$quarter, size = 4) + annotate(geom = "text", x = 2.5 + 4 * (0:4), y = 32, label = unique(df$year), size = 6) + theme_bw() + theme(plot.margin = unit(c(1, 1, 4, 1), "lines"), axis.title.x = element_blank(), axis.text.x = element_blank(), panel.grid.major.x = element_blank(), panel.grid.minor.x = element_blank()) # remove clipping of x axis labels g2 <- ggplot_gtable(ggplot_build(g1)) g2$layout$clip[g2$layout$name == "panel"] <- "off" grid::grid.draw(g2) 

यहां छवि विवरण दर्ज करें


यहां @ ईपीआई 10 द्वारा दिए गए अच्छे उत्तर को देखें: समय श्रृंखला के साथ अनावश्यक रूप से वर्ष को प्रदर्शित करने से रोकें

हेनरिक द्वारा सुझाए गए कोड काम करता है और मुझे बहुत मदद करता है! मुझे लगता है कि समाधान में एक उच्च मूल्य है लेकिन कृपया ध्यान रखें, कोड की पहली पंक्ति में एक छोटा गलत मिसाइल है, जो डेटा के गलत क्रम में होता है। के बजाय

 ... aes(x = interaction(year,quarter), ... 

यह होना चाहिए

 ... aes(x = interaction(quarter,year), ... 

परिणामस्वरूप ग्राफिक के पास सही क्रम में डेटा है।

यहां छवि विवरण दर्ज करें

पी एस मैंने एक संपादन का सुझाव दिया (जो अब तक खारिज कर दिया गया था) और, प्रतिष्ठा के एक छोटे से कमी के कारण, मुझे टिप्पणी करने की अनुमति नहीं है, जो मैंने किया होता था।