2015-02-12 7 views
5

के साथ वर्टिकल स्ट्रिप टेक्स्ट मैं ret_wrap के साथ कई स्थितियों को साजिश करने के लिए आर में ggplot का उपयोग कर रहा हूं। मैं पट्टी नाम को प्लॉट नाम के साथ ऊर्ध्वाधर अक्ष पर दाईं ओर दाईं ओर रखना चाहता हूं।आर/जीजीप्लॉट: facet_wrap

यह एक उदाहरण है:

library(ggplot2) 
dat<- data.frame(name= rep(LETTERS[1:5], each= 4), value= rnorm(20), time= rep(1:5, 4)) 
gg<- ggplot(data= dat, aes(x= time, y= value)) + 
    geom_point() + 
    facet_wrap(~ name, ncol= 1) 

enter image description here यहाँ साजिश नाम (ए, बी, सी, डी, ई) शीर्ष पर हैं, मैं उन्हें चाहते हैं यहाँ के रूप में सही पर होना :

gg + facet_grid(name ~ .) 

enter image description here

एक आसान स्विच यह करने के लिए है? (मैं facet_grid का उपयोग नहीं कर रहा हूं क्योंकि मैं nrow और ncol विकल्पों का उपयोग करना चाहता हूं जो facet_wrap के साथ आते हैं)।

धन्यवाद! दारियो

sessionInfo() 
R version 3.0.1 (2013-05-16) 
Platform: x86_64-apple-darwin10.8.0 (64-bit) 

locale: 
[1] en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8 

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] ggplot2_0.9.3.1 

loaded via a namespace (and not attached): 
[1] colorspace_1.2-4 dichromat_2.0-0 digest_0.6.4  grid_3.0.1   
[5] gtable_0.1.2  labeling_0.2  MASS_7.3-29  munsell_0.4.2  
[9] plyr_1.8.1   proto_0.3-10  RColorBrewer_1.0-5 Rcpp_0.11.0  
[13] reshape2_1.2.2  scales_0.2.3  stringr_0.6.2  tools_3.0.1  
+0

मुझे नहीं लगता कि यह आसान हो जाएगा। एकमात्र चीज जिसे मैं कल्पना कर सकता हूं वह एक डमी चर बनाने और 'facet_grid' के साथ इसका उपयोग करना है। आप हमेशा 'ग्रिड/ग्रिड एक्स्ट्रा' के साथ निम्न-स्तरीय हेरफेर का प्रयास कर सकते हैं, लेकिन यह एक जटिल पथ है। – tonytonov

+1

ठीक है, प्रतिक्रिया के लिए धन्यवाद। मुझे लगता है कि डमी वेरिएबल रूट सबसे आसान है, हालांकि मैं केवल एस्थेटिकल उद्देश्यों के लिए डेटा बदलने में अनिच्छुक हूं। – dariober

उत्तर

2

भविष्य में संदर्भ के लिए, अब आप strip.position="right"put them on the right side का उपयोग कर सकते, उदा .:

library(ggplot2) 
dat<- data.frame(name= rep(LETTERS[1:5], each= 4), value= rnorm(20), time= rep(1:5, 4)) 
gg<- ggplot(data= dat, aes(x= time, y= value)) + 
    geom_point() + 
    facet_wrap(~ name, ncol= 1, strip.position="right") 
1

आप पहलुओं के बाएं हाथ की ओर पहलू लेबल करने के लिए तैयार कर रहे हैं तो वहाँ एक सरल उपाय जहां y- अक्ष x- अक्ष और X- अक्ष हो जाता है y- हो जाता है एक्सिस।

library(ggplot2) 
library(gridExtra) 
library(gridGraphics) 

# standard plot, facet labels on top 
ggplot(diamonds) + 
    aes(x = carat, y = price) + 
    geom_point() + 
    facet_wrap(~ cut) 

enter image description here

# Use the gridExtra and gridGraphics utilities to rotate the plot. 
# This requires some modifications to the axes as well. Note the use of 
# a negative carat in the aes() call, and text modifications with theme() 
grid.newpage() 
pushViewport(viewport(angle = 90)) 
grid.draw(ggplotGrob(

    ggplot(diamonds) + 
    aes(x = price, y = -carat) + 
    geom_point() + 
    facet_wrap(~ cut) + 
    scale_y_continuous(name = "Carat", breaks = -seq(0, 5, by = 1), labels = seq(0, 5, by = 1)) + 
    theme(axis.text.y = element_text(angle = 270), 
      axis.title.y = element_text(angle = 270), 
      axis.text.x = element_text(angle = 270)) 
    )) 

enter image description here

घुमाया ग्राफिक के दाहिने हाथ की ओर facet_wrap लेबल बढ़ते -90 के रोटेशन कोण के साथ किया जा जाएगा। हालांकि, भूखंडों के शीर्ष पर प्रभावी एक्स-अक्ष होगी। आपको वाई-अक्ष लेबल को "मानक" साजिश के बाएं से दाएं तरफ ले जाने के लिए कोड पर काम करने की आवश्यकता होगी और फिर -90 द्वारा सचित्र के रूप में घुमाएं।

+0

यह एक दिलचस्प, और काफी सरल दृष्टिकोण है, धन्यवाद! परिणामस्वरूप साजिश के आकार को सुनिश्चित करने के लिए कोई विचार व्यूपोर्ट को ओवरफ़्लो नहीं करता है? – cashoes

संबंधित मुद्दे