ggplot

2012-05-30 25 views
11

ggplot का उपयोग करते हुए आर-स्टाइल अक्ष, क्या "आर-स्टाइल" x/y axes प्राप्त करना संभव है जो मूल पर नहीं मिलते हैं और इसके बजाय निम्नलिखित डिस्कनेक्ट की गई दो डिस्कनेक्ट रेंज शामिल हैं?ggplot

enter image description here

कारण यहां शुद्ध आर वालों के लिए लगातार अगले देखने के लिए भूखंडों ggplot प्राप्त करने के लिए मुख्य रूप से है।

+3

इस सवाल, क्यों आधार भूखंडों नहीं भीख माँगता (http://rwiki.sciviews.org/doku.php?id=tips:graphics-misc:ggplot2theme_inbase) [ggplot2 की तरह लग रहे?];) – baptiste

+0

क्योंकि मैं कर सकते हैं न ही आधार भूखंडों को अद्यतन करें और फिर से करें। मैंने वास्तव में ggplot- जेनरेट किए गए लोगों के एसवीजी को संपादित करने पर विचार किया है, लेकिन यह एक हैक है। – Christian

+0

यदि आप बेस प्लॉट को डिजिटलीकृत करना चाहते हैं, तो आप पैकेज को 'डिजिटाइज' करने का प्रयास कर सकते हैं। – mnel

उत्तर

13

इस प्रयास करें,

library(ggplot2) 

d <- data.frame(x=1:10, y=rnorm(10)) 

base_breaks_x <- function(x){ 
    b <- pretty(x) 
    d <- data.frame(y=-Inf, yend=-Inf, x=min(b), xend=max(b)) 
    list(geom_segment(data=d, aes(x=x, y=y, xend=xend, yend=yend), inherit.aes=FALSE), 
     scale_x_continuous(breaks=b)) 
} 
base_breaks_y <- function(x){ 
    b <- pretty(x) 
    d <- data.frame(x=-Inf, xend=-Inf, y=min(b), yend=max(b)) 
    list(geom_segment(data=d, aes(x=x, y=y, xend=xend, yend=yend), inherit.aes=FALSE), 
     scale_y_continuous(breaks=b)) 
} 

ggplot(d, aes(x,y)) + 
    geom_point() + 
    theme_bw() + 
    theme(panel.border = element_blank(), 
     panel.grid.major = element_blank(), 
     panel.grid.minor = element_blank()) + 
    base_breaks_x(d$x) + 
    base_breaks_y(d$y) 

screenshot

संपादित करें: ggtheme पैकेज में एक related issue has since been discussed, और संभवतः एक क्लीनर समाधान (टूटता कार्य करने के लिए स्पष्ट रूप से डेटा प्रदान करने की कोई जरूरत) प्रदान करता है।

+0

बहुत अच्छा! मैंने opts (axis.line = theme_line()) का उपयोग करने के बारे में सोचा, लेकिन मुझे वहां बहुत अजीब त्रुटियां मिलती हैं ... –

+0

हाँ, अच्छी तरह से किया - धन्यवाद! – Christian