2013-02-23 22 views
6

मैं निम्नलिखित साजिशजोड़ने अंक

require(ggplot2) 

dtf <- structure(list(Variance = c(5.213, 1.377, 0.858, 0.613, 0.412, 0.229, 0.139, 0.094, 0.064), Component = structure(1:9, .Label = c("PC1", "PC2", "PC3", "PC4", "PC5", "PC6", "PC7", "PC8", "PC9"), class = "factor")), .Names = c("Variance", "Component"), row.names = c(NA, -9L), class = "data.frame") 

ggplot(dtf, aes(x = Component, y = Variance)) + 
geom_point() 

enter image description here

मैं बस सीधे लाइनों के साथ डॉट्स कनेक्ट करने के लिए करना चाहते हैं। मैं +geom_line() कोशिश की, लेकिन है कि एक त्रुटि

उत्तर

18

आपका x मूल्यों असतत (कारक) कर रहे हैं और geom_line() प्रत्येक अद्वितीय x मूल्य अलग समूह के रूप में अनुभव उत्पन्न होती है और केवल इस समूह के अंदर अंक कनेक्ट करने के लिए कोशिश करता है। aes() में group=1 सेट करना सुनिश्चित करता है कि सभी मान एक समूह के रूप में माना जाता है।

ggplot(dtf, aes(x = Component, y = Variance,group=1)) + 
    geom_point()+geom_line() 
+1

(+1) शायद आपको यह समझाया जाना चाहिए कि यह क्यों हुआ है। – Arun

+0

+1 अच्छा, धन्यवाद। यह मुझे काम करने के लिए उम्र ले जाएगा! –

+2

यदि आप 'एक्स = थ्रॉटल, वाई = एक्सेलेरेशन, रंग = विजेट' जैसी किसी भी अक्ष पर विभिन्न स्थितियों से डेटा की तुलना करने के लिए अतिरिक्त सौंदर्यशास्त्र का उपयोग कर रहे हैं, तो आप लाइनों को जोड़ने वाले बिंदुओं को आकर्षित करने के लिए 'समूह = विजेट' जोड़ सकते हैं वही विजेट्स –

0

यह पहलू श्रेणियों के पूर्णांक मान के रूप में एक्स के साथ बिन्दु होगा:

ggplot(dtf, aes(x = as.numeric(Component), y = Variance)) + 
     geom_point() + geom_line() 

आप के साथ श्रेणी लेबल में वापस रख सकते हैं:

ggplot(dtf, aes(x = as.numeric(Component), y = Variance)) + 
    geom_point() +geom_line() + scale_x_discrete(labels=dtf$Component) 
+0

धन्यवाद। इसके साथ मुख्य समस्या यह है कि इसे एक्स अक्ष लेबल को बदलने के लिए "as.numeric (घटक)" –

+0

सहमत होने से बचने की आवश्यकता है। यह निश्चित रूप से इष्टतम नहीं था। 2 फिक्स की आवश्यकता है और मैंने अभी तक केवल एक ही लागू किया है। आपको दूसरे जवाब को स्वीकार करना चाहिए। –