2012-11-25 11 views
10

दोनों भूखंडों में अंक अलग दिखते हैं, लेकिन क्यों?geom_point में आकार वास्तव में क्या मतलब है?

mya <- data.frame(a=1:100) 

ggplot() + 
    geom_path(data=mya, aes(x=a, y=a, colour=2, size=seq(0.1,10,0.1))) + 
    geom_point(data=mya, aes(x=a, y=a, colour=1, size=1)) + 
    theme_bw() + 
    theme(text=element_text(size=11)) 

ggplot() + 
    geom_path(data=mya, aes(x=a, y=a, colour=2, size=1)) + 
    geom_point(data=mya, aes(x=a, y=a, colour=1, size=1)) + 
    theme_bw() + 
    theme(text=element_text(size=11)) 

?aes_linetype_size_shape बताते हैं ...

# Size examples 
# Should be specified with a numerical value (in millimetres), 
# or from a variable source 

लेकिन मेरे कोड में यह अलग दिखता है।

उत्तर

13

आपके कोड में कुछ भ्रमित चीजें हो रही हैं। ऐसा लगता है कि आप aes फ़ंक्शन का उपयोग ऐसे तरीके से कर रहे हैं जिसका इरादा नहीं है। साथ ही size समस्या, आपको कई किंवदंतियों मिल रही हैं, और मुझे लगता है कि ggplot रंगों के बारे में उलझन में है।

aes फ़ंक्शन का उपयोग डेटा में चर के लिए सौंदर्यशास्त्र को मैप करने के लिए किया जाता है, लेकिन आप इसे सौंदर्यशास्त्र को निरंतर सेट करने के लिए उपयोग कर रहे हैं। इसके अलावा, आप दो अलग सौंदर्यशास्त्र सेट करने के लिए aes फ़ंक्शन का उपयोग कर रहे हैं। भले ही आप size को स्थिर पर सेट करते हैं, ggplot2 को दो अलग (पथ और बिंदु) आकार मैपिंग पसंद नहीं है। इसके अलावा, आप रंग मैपिंग के साथ भी ऐसा करते हैं।

size और colour निरंतर मानों पर सेट हैं, इसलिए उन्हें aes फ़ंक्शन के बाहर ले जाएं। साथ ही, पहली साजिश में पथ के size के संबंध में, डेटा फ्रेम में size चर जोड़ने के लिए शायद अधिक सुरक्षित है। (मैंने आपके डेटा को थोड़ा सा संशोधित कर दिया है ताकि दोनों बिंदु और पथ दिखाई दे सकें।) और जैसा कि अपेक्षित है, पहली साजिश में एक किंवदंती खींची गई है।

library(ggplot2) 
mya <- data.frame(a=1:10, size = seq(10, 1, -1)) 

ggplot() + 
    geom_path(data=mya, aes(x=a, y=a, size=size), colour = 2) + 
    geom_point(data=mya, aes(x=a, y=a), colour = 1, size = 3) + 
    theme_bw() + 
    theme(text=element_text(size=11)) 

ggplot() + 
    geom_path(data=mya, aes(x=a, y=a), colour = 2, size = 1) + 
    geom_point(data=mya, aes(x=a, y=a), colour = 1, size = 3) + 
    theme_bw() + 
    theme(text=element_text(size=11)) 

enter image description here

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