2012-04-04 17 views
9

में रंग मैन्युअल रूप से भरने के लिए कैसे मैं एक हिस्टोग्राम उत्पन्न कर रहा हूं और मैं विशिष्ट समूहों के साथ कुछ समूहों को रंगना चाहता हूं। यहाँ मेरी हिस्टोग्राम है:ggplot2 हिस्टोग्राम

enter image description here

मैं 14 समूहों है और मैं पहले 7 लाल, अगले 4 नीले, और अंतिम 3 नारंगी रंग करने के लिए करना चाहते हैं। मैं ggplot में यह कैसे कर सकता हूं? धन्यवाद।

+0

मैं तुम्हें एक बार साजिश, नहीं एक हिस्टोग्राम मतलब यह सोचते हैं रहा हूँ? वहाँ एक (बड़ा) अंतर है। – joran

+0

डेटा असंतुलित डेटा से आवृत्ति का एक साजिश है। मैंने इसे 'geom_histogram' का उपयोग करके प्लॉट किया। मुझे यकीन नहीं है कि यह "बार चार्ट" या "पृथक हिस्टोग्राम" है। – drbunsen

+2

ठीक है। मैं शायद उस मामले में geom_bar का उपयोग करूँगा। और फिर आपको अपने डेटा फ्रेम में समूहबद्ध चर की आवश्यकता होती है जो आपके इच्छित रंग समूह को परिभाषित करता है, और उसके बाद उसे 'भरने' के लिए मानचित्रित करता है। 'Geom_bar' में कुछ उदाहरण हैं। – joran

उत्तर

12

UPDATED संस्करण

समूहीकरण स्तंभ निर्दिष्ट करने के लिए कोई ज़रूरत नहीं, ggplot आदेश और अधिक कॉम्पैक्ट है।

library(ggplot2) 
set.seed(1234) 

# Data generating block 
df <- data.frame(x=sample(1:14, 1000, replace=T)) 
# Colors 
colors <- c(rep("red",7), rep("blue",4), rep("orange",3)) 

ggplot(df, aes(x=x)) + 
    geom_histogram(fill=colors) + 
    scale_x_discrete(limits=1:14) 

enter image description here

पुराने संस्करण

library(ggplot2) 

# 
# Data generating block 
# 
df <- data.frame(x=sample(c(1:14), 1000, replace=TRUE)) 
df$group <- ifelse(df$x<=7, 1, ifelse(df$x<=11, 2, 3)) 

# 
# Plotting 
# 
ggplot(df, aes(x=x)) + 
    geom_histogram(data=subset(df,group==1), fill="red") + 
    geom_histogram(data=subset(df,group==2), fill="blue") + 
    geom_histogram(data=subset(df,group==3), fill="orange") + 
    scale_x_discrete(breaks=df$x, labels=df$x) 

enter image description here

+0

मुझे एक संचयी हिस्टोग्राम 'एईएस (वाई = cumsum (.. गिनती ../योग (.. गिनती ..)) को संभालने का एकमात्र तरीका होने के लिए दृष्टिकोण '' geom_histogram (fill = colors) '' 'मिला है) ', क्योंकि' 'aes'' के अंदर भरने की सेटिंग के कारण समूहों को ढेर किया गया। सरल '' stat_ecdf'' दृष्टिकोण मेरे लिए काम नहीं करता क्योंकि यह '' breaks'' विकल्प नहीं लेता है। अंत में, केवल यह दृष्टिकोण काम किया। – PatrickT