2009-09-25 11 views
25

में scale_shape() के लिए इस्तेमाल किया आकार मान लीजिए मैं निम्नलिखितबदलने ggplot2

y <- rnorm(10) 
b <- as.factor(sample(1:4,10,replace=T)) 
qplot(1:10, y, shape=b) 

मैं आकार कि ggplot2 का उपयोग कर इस्तेमाल कर रहे हैं बदल सकता हूँ?

उत्तर

36

ggplot जिस तरह से यह scale_shape_manual का उपयोग करें और values बहस में वांछित आकार प्रदान करने के लिए किया जाएगा करने के लिए:

qplot(1:10, y, shape=b) + scale_shape_manual(values = c(0, 5, 6, 15)) 

result of above

आकार ही कर रहे हैं सामान्य 0-25 इंडेक्स के रूप में: http://yusung.blogspot.com/2008/11/plot-symbols-in-r.html

+1

यह ऐसा करने का एक बेहतर तरीका है, क्योंकि यह किंवदंती बरकरार रखता है और जीजीप्लॉट के साथ काम करता है, आधार ग्राफिक्स नहीं। मैं हर रोज ggplot के बारे में और अधिक सीखता हूं, धन्यवाद! – Vince

+0

हाय, जब आप scale_shape_manual() का उपयोग कर रहे हैं, तो मैं प्रतीकों के आकार को कैसे बदल सकता हूं? मैंने geom_point (आकार = 4) का उपयोग करने की कोशिश की, लेकिन आउटपुट डबल प्रतीक (दो आकार) था। किसी भी तरह की सहायता को आभार समझेंगे। – Rafael

+0

यदि आप qplot का उपयोग कर रहे हैं, तो 'size = 4' को' qplot' कॉल के अंदर जाना होगा, अलग से नहीं। यदि आप अतिरिक्त 'geom_point' जोड़ते हैं, तो आप प्रभावी रूप से दूसरी परत बना रहे हैं। (यह संयोगवश, यही कारण है कि आपको 'qplot' का उपयोग नहीं करना चाहिए - यह भ्रमित है।) – Harlan

6
> y <- rnorm(10) 
> b <- as.factor(sample(1:4,10,replace=T)) 
> qplot(1:10, y, shape=b) 
> qplot(1:10, y, pch=letters[1:10], cex=6) 

क्या इसका मतलब है? मुझे कल्पना है कि आप आर के किसी भी प्लॉटिंग वर्णों का उपयोग कर सकते हैं ...

यह ऐसा करने का एक बहुत ही 'ggplot' तरीका नहीं हो सकता है, लेकिन मैन पेज पढ़ता है "आप इसका उपयोग कर सकते हैं जैसे आप इसका उपयोग करेंगे ' साजिश 'समारोह। "। :-)

alt text

+0

'त्रुटि: scale_shape_discrete एक अधिकतम के साथ सौदा कर सकते हैं 6 अलग-अलग मानों में से, लेकिन आपके पास 10 है। संभावित विकल्प के लिए स्केल_मानुअल देखें – isomorphismes

14

पूर्ण करने वालों के लिए (10y + x) नीचे बाईं ओर 0 से शुरू करने और पढ़ने के दाईं ओर फिर ऊपर - टी Harlan का जवाब, यहाँ उपलब्ध आकार के लिए एक संदर्भ है:

df <- data.frame(x=c(0:129)) 
ggplot(df, aes(x=x%%10, y=floor(x/10), shape=factor(x), colour=x, size=10)) + 
    geom_point() + 
    scale_shape_manual(values=df$x) + theme(legend.position='none') + 
    scale_x_continuous(breaks=0:10) + scale_y_continuous(breaks=0:12) + 
    scale_colour_hue() + scale_colour_gradientn(colours=rainbow(3)) 

Shapes available in ggplot2