2011-12-05 20 views
15

के साथ बॉक्सप्लॉट बनाएं I कई समूहों के साथ एक ग्राफिक बनाते हैं और लाइनों के एक सेट पर geom_boxplot() को प्लॉट करते हैं। हालांकि, बक्से को पारदर्शी रूप से रंगना अच्छा होगा ताकि लाइनों को देखा जा सके।पारदर्शी रंग ggplot2

x11() 

name <- c("a", "a", "a", "a", "a", "a","a", "a", "a", "b", "b", "b","b", "b", "b","b", "b", "b") 
class <- c("c1", "c1", "c1", "c2", "c2", "c2", "c3", "c3", "c3","c1", "c1", "c1", "c2", "c2", "c2", "c3", "c3", "c3") 
year <- c("2010", "2009", "2008", "2010", "2009", "2008", "2010", "2009", "2008", "2010", "2009", "2008", "2010", "2009", "2008", "2010", "2009", "2008") 
value <- c(100, 33, 80, 90, 80, 100, 100, 90, 80, 90, 80, 100, 100, 90, 80, 99, 80, 100) 

df <- data.frame(name, class, year, value) 
df 

मैं के साथ ग्राफिक आकर्षित:

p1 <- ggplot(df, aes(year, value)) 
p1 <- p1 + geom_line(aes(group=name, size=name),colour="#ff2300",alpha=0.5) +  facet_wrap(~ class, scales = "free_y") 
p1 <- p1 + geom_boxplot(aes(group=name)) 
print(p1) 

और मेरे सिस्टम पर कथा में रेखा की चौड़ाई सही ढंग से प्रदर्शित नहीं किया जाता

यहाँ कुछ नमूना डेटा है। क्या मुझसे कुछ गलत हो रही है? अग्रिम में धन्यवाद!

+0

बॉक्सप्लॉट के बाद रेखाएं खींचने के बारे में क्या होगा, क्या यह समझदार होगा? –

+0

कम से कम मूल आर प्लॉट टूल्स के लिए, 2 अतिरिक्त अंकों वाले रंग को पारदर्शिता परिभाषित करता है। जैसे '# एफएफ 230033' जहां पारदर्शिता 00 से एफएफ तक चलती है। –

उत्तर

25

आप अपने बॉक्सप्लॉट में alpha तर्क जोड़ सकते हैं। उदाहरण के लिए:

geom_boxplot(aes(group=name), alpha = 0.8)

आप

enter image description here

+0

सुनिश्चित करें - सबसे स्पष्ट तरीका! धन्यवाद! 'Free_y' के बारे में चेतावनी के लिए – Seb

5

बदलें geoms के आदेश पहले और उसके बाद लाइनों boxplot आकर्षित करने के लिए दे देंगे। हालांकि मुझे नहीं लगता कि आपका ग्राफ समझ में आता है। लाइन के आकार को बदलने के लिए आप नाम का उपयोग क्यों कर रहे हैं? क्या लिनटाइप को बदलने के लिए और अधिक समझदारी नहीं होगी? और मैं पहलुओं में free_y के खिलाफ सलाह देता हूं क्योंकि इससे तुलना करना मुश्किल हो जाता है।

name <- c("a", "a", "a", "a", "a", "a","a", "a", "a", "b", "b", "b","b", "b", "b","b", "b", "b") 
class <- c("c1", "c1", "c1", "c2", "c2", "c2", "c3", "c3", "c3","c1", "c1", "c1", "c2", "c2", "c2", "c3", "c3", "c3") 
year <- c("2010", "2009", "2008", "2010", "2009", "2008", "2010", "2009", "2008", "2010", "2009", "2008", "2010", "2009", "2008", "2010", "2009", "2008") 
value <- c(100, 33, 80, 90, 80, 100, 100, 90, 80, 90, 80, 100, 100, 90, 80, 99, 80, 100) 

df <- data.frame(name, class, year, value) 
df 
library(ggplot2) 
p1 <- ggplot(df, aes(year, value)) 
p1 <- p1 + geom_boxplot(aes(group=name)) + geom_line(aes(group=name, size=name),colour="#ff2300",alpha=0.5) + 
    facet_wrap(~ class, scales = "free_y") 
+0

+1। सौभाग्य से, ggplot की पृष्ठभूमि अलर्ट है कि तराजू पहलुओं के बीच तुलनीय नहीं हैं। –

+0

हाय, संकेत के लिए धन्यवाद। हाँ तुम सही हो। ग्राफ बहुत समझ में नहीं आता है! विशेष रूप से रेखा आकार तर्क कुछ ऐसा था जो मैंने मज़े के लिए किया था - इसे इस तरह से पोस्ट नहीं किया जाना चाहिए था। 'free_y' तर्क से संबंधित: मूल डेटा में विभिन्न रियल एस्टेट प्रकारों पर कक्षाएं होती हैं जो शायद ही तुलनात्मक होती हैं (उदाहरण के लिए किराया बनाम कीमतें) इसलिए मुझे लगता है कि यह ठीक है। – Seb

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