दिलचस्प पोस्ट
आईफोन एक्स सिम्युलेटर के ऊपर और नीचे काली सलाखों को देखकर सी ++ सीरियलाइजेशन ओवरहेड बढ़ाएं PHP पीडीओ तैयार कथन – MySQL जैसी क्वेरी Windows / Linux / Mac पर जावा प्रोग्राम में वैश्विक हॉटकी पर प्रतिक्रिया दें? मैं जावास्क्रिप्ट के साथ iframe तत्वों का उपयोग कैसे कर सकता हूं? Windows XP समर्थन के साथ स्थिर एमएसवीवी रनटाइम का उपयोग करते हुए, VS2012 के तहत स्थिर रूप से क्यूटी 4.8 / 5.2 कैसे बना सकता है? जावास्क्रिप्ट से एक सीएसएस नियम सेट बदलना फ्लास्क अनुरोध में प्राप्त आंकड़े कैसे प्राप्त करें ग्रहण: विशिष्ट पैकेज को छोड़ दें, जब किसी वर्ग के नाम को स्वत: पूर्ण करना रिसाइकिलवेव एडेप्टर संलग्न नहीं; लेआउट लंघन सी # में बयान का उपयोग कर नेस्टेड UIWebView लोड करते समय UIProgressView का उपयोग कैसे करें? क्या एक सीएसएस नियम को दूसरे के भीतर संदर्भ करना संभव है? एंड्रॉइड एम्यूलेटर में जीपीएस स्थान का अनुकरण कैसे करें? नोहाप के तहत मैं एक पहले से चलने वाली प्रक्रिया कैसे डालूं?

जीजीप्लोट लाइन चार्ट में मल्टी-पंक्ति 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), ... 

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

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

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