2012-09-13 7 views
47

मैं 2 x 2 अध्ययन डिज़ाइन से ggplot में एक साजिश बना रहा हूं और अपने 4 अलग-अलग उपचार संयोजनों को वर्गीकृत करने के लिए 2 रंगों और 2 प्रतीकों का उपयोग करना चाहता हूं। वर्तमान में मेरे पास 2 किंवदंतियों हैं, एक रंग के लिए और एक दो आकार के लिए। मैं उन्हें एक किंवदंती में कैसे जोड़ सकता हूं, इसलिए मेरे पास एक नीला सर्कल, एक लाल सर्कल, एक नीला त्रिभुज, और एक त्रिभुज है?एक एकल किंवदंती में रंग और आकार के लिए किंवदंतियों को मिलाएं

कुछ डेटा:

state1 <- c(rep(c(rep("N", 7), rep("Y", 7)), 2)) 
year <- rep(c(2003:2009), 4) 
group1 <- c(rep("C", 14), rep("E", 14)) 
group2 <- paste(state1, group1, sep = "") 
beta <- c(0.16,0.15,0.08,0.08,0.18,0.48,0.14,0.19,0.00,0.00,0.04,0.08,0.27,0.03,0.11,0.12,0.09,0.09,0.10,0.19,0.16,0.00,0.11,0.07,0.08,0.09,0.19,0.10) 
    lcl <- c(0.13,0.12,0.05,0.05,0.12,0.35,0.06,0.13,0.00,0.00,0.01,0.04,0.20,0.00,0.09,0.09,0.06,0.06,0.07,0.15,0.11,0.00,0.07,0.03,0.05,0.06,0.15,0.06) 
    ucl <- c(0.20,0.20,0.13,0.14,0.27,0.61,0.28,0.27,0.00,1.00,0.16,0.16,0.36,0.82,0.14,0.15,0.13,0.13,0.15,0.23,0.21,0.00,0.15,0.14,0.12,0.12,0.23,0.16) 
data <- data.frame(state1,year,group1,group2,beta,lcl,ucl) 

प्लॉट:

library(ggplot2) 
pd <- position_dodge(.65) 
ggplot(data = data, aes(x = year, y = beta, colour = state1, group = group2, shape = group1)) + 
    geom_point(position = pd, size = 4) + 
    geom_errorbar(aes(ymin = lcl, ymax = ucl),colour = "black", width = 0.5, position = pd) + 
    scale_colour_hue(name = "Treatment & State", #Legend label, use darker colors 
        labels = c("Control", "Exclosure"), 
        l = 40) + 
    scale_shape(name = "State", labels = c("Non-F", "Flwr")) 

enter image description here

+0

त्रुटि = बीटा estimate' मैं लगता है कि अनुमान है? –

+0

भी 'आकार' 'group1' सही होना चाहिए? –

+0

तो आप एक नीला सर्कल, एक लाल सर्कल, ओबे ब्लू त्रिकोण एक लाल त्रिकोण चाहते हैं? –

उत्तर

54

आपको आकार और रंग स्केल दोनों के लिए समान name और labels मानों का उपयोग करने की आवश्यकता है।

अपने `y के साथ
pd <- position_dodge(.65) 
ggplot(data = data,aes(x= year, y = beta, colour = group2, shape = group2)) +  
    geom_point(position = pd, size = 4) + 
    geom_errorbar(aes(ymin = lcl, ymax = ucl), colour = "black", width = 0.5, position = pd) + 
    scale_colour_manual(name = "Treatment & State", 
         labels = c("Control, Non-F", "Control, Flwr", "Exclosure, Non-F", "Exclosure, Flwr"), 
         values = c("blue", "red", "blue", "red")) + 
    scale_shape_manual(name = "Treatment & State", 
        labels = c("Control, Non-F", "Control, Flwr", "Exclosure, Non-F", "Exclosure, Flwr"), 
        values = c(19, 19, 17, 17)) 

enter image description here

+0

अद्भुत का उपयोग कर विशिष्ट लोगों को चुनते हैं! मुझे scale_colour_manual और scale_shape_manual –

+0

पर परिचय देने के लिए धन्यवाद, बस एक मामूली नोट, यह गैर-मैनुअल स्केल –

+0

के साथ ही काम करता है एक और नोट: भरे आकार के लिए scale_colour_manual के बजाय scale_fill_manual का उपयोग करने में समस्याएं हैं। इसका समाधान करने के लिए, 'guides (fill = guide_legend (override.aes ​​= list (fill = ...)) के साथ सेटिंग्स को ओवरराइड करना आवश्यक लगता है)' इस प्रश्न में: http://stackoverflow.com/ प्रश्न/12488905/क्यों-अभ्यस्त-ggplot2-कथा-गठबंधन-पुस्तिका भरने और पैमाने मानों – Unstack

7

लाल रंग का गोला, नीले वृत्त, लाल त्रिकोण, नीले त्रिकोण के रूप में आप से पूछा:

ggplot(data =data,aes(x= year, y = beta, shape=group2, colour=group2,group = group2)) + 
geom_errorbar(aes(ymin = lcl, ymax = ucl),colour = "black", width = 0.5, position = pd) + 
geom_point(position = pd, size = 4) + 
scale_colour_manual(values=c("red","blue","red","blue")) + 
scale_shape_manual(values=c(19,19,17,17)) + 
scale_fill_hue(name="Treatment & State", #Legend label, use darker colors 
labels=c("Control", "Exclosure"),l=40) 

enter image description here

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