2013-05-07 9 views
5

में अक्षरों को छेड़छाड़ से रोकने के लिए कैसे करें मैं कुछ लॉग-ट्रांसफॉर्म किए गए डेटा के लाइन ग्राफ़ बनाने के लिए ggplot2 का उपयोग कर रहा हूं जिसमें सभी के पास बड़े मान हैं (10^6 और 10^8 के बीच); चूंकि अक्ष शून्य पर शुरू नहीं होती हैं, इसलिए मैं उन्हें "मूल" पर छेड़छाड़ नहीं करना चाहूंगा।ggplot2

ggplot2 plot

मैं कुछ अधिक पसंद करते हैं जैसे एक आधार ग्राफिक्स से हो जाता है (लेकिन मैं इसके साथ ही मैं वास्तव में ggplot2 में तरह geom_ribbon और अन्य फैंसी चीजों का उपयोग कर रहा:

यहाँ कुल्हाड़ियों वर्तमान की तरह लग रही है , तो मैं एक ggplot2 समाधान खोजने के लिए पसंद करते हैं):

non-intersecting axes

यहाँ मैं वर्तमान में क्या कर रही हूं:

इस समस्या के लिए
mydata <- data.frame(Day = rep(1:8, 3), 
    Treatment = rep(c("A", "B", "C"), each=8), 
    Value = c(7.415929, 7.200486, 7.040555, 7.096490, 7.056413, 7.143981, 7.429724, 7.332760, 7.643673, 7.303994, 7.343151, 6.923636, 6.923478, 7.249170, 7.513370, 7.438630, 7.209895, 7.000063, 7.160154, 6.677734, 7.026307, 6.830495, 6.863329, 7.319219)) 

ggplot(mydata, aes(x=Day, y=Value, group=Treatment)) 
    + theme_classic() 
    + geom_line(aes(color = Treatment), size=1) 
    + scale_y_continuous(labels = math_format(10^.x)) 
    + coord_cartesian(ylim = c(6.4, 7.75), xlim=c(0.5, 8)) 

plot(mydata$Day, mydata$Value, frame.plot = F) #non-intersecting axes 
+0

तो आप और अधिक नीचे साजिश की तरह कुछ करना चाहते हैं? आप 'geom_point' या' qplot' आज़मा सकते हैं? – Harpal

उत्तर

3

वर्कअराउंड theme(axis.line=element_blank()) साथ अक्ष लाइनों को हटाने के लिए और उसके बाद geom_segment() के साथ झूठी अक्ष लाइनों को जोड़ने होगा - एक्स अक्ष और y अक्ष के लिए दूसरे के लिए एक। x, y, xend और yend मूल्य आपकी साजिश से निर्धारित किए गए हैं (प्रत्येक संबंधित अक्ष के लिए साजिश पर दिखाए गए सबसे छोटे और सबसे बड़े मूल्यों के रूप में लिया गया है) और coord_cartesian() में उपयोग की जाने वाली धुरी सीमा (यह सुनिश्चित करने के लिए सीमा का न्यूनतम मूल्य कि सेगमेंट प्लॉट किया गया है एक्सिस)।

ggplot(mydata, aes(x=Day, y=Value, group=Treatment)) +theme_classic() + 
geom_line(aes(color = Treatment), size=1) + 
scale_y_continuous(labels = math_format(10^.x))+ 
coord_cartesian(ylim = c(6.4, 7.75), xlim=c(0.5, 8))+ 
theme(axis.line=element_blank())+ 
geom_segment(x=2,xend=8,y=6.4,yend=6.4)+ 
geom_segment(x=0.5,xend=0.5,y=6.5,yend=7.75) 

enter image description here

+0

बिल्कुल सही, धन्यवाद! – phosphorelated