के लिए मैन्युअल रूप से समूह रंग सेट करना मेरे पास एक डेटा सेट है जिसमें से मुझे कई दर्जन भूखंड बनाना पड़ता है। डेटा में प्रत्येक समूह के भीतर 30 समूह और कई माप शामिल हैं।ggplot2
अधिकांश भूखंड एक ही समय में सभी समूहों का उपयोग नहीं करेंगे।
मेरा लक्ष्य समूह के समूह के लिए एक एकल रंगीन पालीट होना है जैसे कि किसी दिए गए समूह सभी ग्राफों में एक ही रंग है। नीचे दिए गए उदाहरण में, इसका मतलब यह होगा कि Group C
Plot 1
और Plot 2
में एक ही रंग है।
मेरा सवाल यह है कि इस बारे में कैसे जाना है।
मैंने scale_fill_manual (और scal_color_manual, उचित होने पर) की कई भिन्नताओं की कोशिश की है। जबकि रंगों को नामित पैलेट से चुना जाता है, मैं समूह द्वारा पैलेट को इंडेक्स नहीं कर सकता, या किसी अन्य समूह को किसी अनुपस्थित समूह
से संबंधित रंगों पर "छोड़ने" के लिए प्रतीत नहीं होता है, मैंने यह भी सोचा कि डेटा की एक कॉलम के रूप में रंगीन जानकारी प्लॉट की जा रही है, लेकिन मुझे यकीन है कि समूह के रंग के रूप में इस कॉलम का उपयोग कैसे करें।
# SAMPLE DATA:
DT1 <- data.table(Name=c("C_sub1", "A_sub1", "A_sub2"), Value=c(2,5,3), Group=c("C", "A", "A"), key="Group")
DT2 <- data.table(Name=c("A_sub1", "B_sub1", "C_sub1", "C_sub2"), Value=c(4,3,6,3), Group=c("A", "B", "C", "C"), key="Group")
# SAMPLE Color Pallette
ColorsDT <- data.table(Group=LETTERS[1:5], Color=c("#333BFF", "#CC6600", "#9633FF", "#E2FF33", "#E3DB71"), key="Group")
# Add a column for Color, according to the Group
DT1[ColorsDT, Color := i.Color]
DT2[ColorsDT, Color := i.Color]
# A Basic Plot
simplePlot <- function(DT, tit)
ggplot(DT ,aes(x=Name, y=Value, fill=Group)) +
geom_bar(stat="identity") + xlab("") + ggtitle(tit)
# Tried sevearl variations of:
# + scale_fill_manual(values=ColorsDT$Color)
# Plot Them
grid.arrange(ncol=2, simplePlot(DT1, tit="Plot 1"), simplePlot(DT2, tit="Plot 2"))