33
我有一個數據集,我必須製作數十個圖。該數據由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"))