2

我有一个数据集,我需要在其中表示两个群组在三个时间段内的堆积条形图。目前,我按年分面,并根据我的 DV 的概率值进行填充(次数,t,有人去疗养院;pr t=0,t=1,... t >= 5) . 我试图弄清楚是否可以引入另一种色标,以便每个“比较”条都用黄色渐变填充,而处理条则用蓝色渐变填充。我认为最好的方法可能是覆盖这两个图,但我不确定是否可以在 ggplot (或其他一些包)中做到这一点。代码和屏幕截图如下:

         tempPlot <- ggplot(tempDF,aes(x = HBPCI, y = margin,  fill=factor(prob))) + 
      scale_x_continuous(breaks=c(0,1), labels=c("Comparison", "Treatment"))+
      scale_y_continuous(labels = percent_format())+
      ylab("Prob snf= x")+
      xlab("Program Year")+
      ggtitle(tempFlag)+
      geom_bar(stat="identity")+
      scale_fill_brewer(palette = "Blues")+ #can change the color scheme here.
      theme(axis.title.y =element_text(vjust=1.5, size=11))+
      theme(axis.title.x =element_text(vjust=0.1, size=11))+
      theme(axis.text.x = element_text(size=10,angle=-45,hjust=.5,vjust=.5))+
      theme(axis.text.y = element_text(size=10,angle=0,hjust=1,vjust=0))+
      facet_grid(~yearQual, scales="fixed")

在此处输入图像描述

4

1 回答 1

4

您可能需要考虑使用interaction()-- 这是一个可重现的解决方案:

year <- c("BP", "PY1", "PY2")
type <- c("comparison", "treatment")

df <- data.frame(year = sample(year, 100, T),
                 type = sample(type, 100, T),
                 marg = abs(rnorm(100)),
                 fact = sample(1:5, 100, T))
head(df)
#   year       type      marg fact
# 1   BP comparison 0.2794279    3
# 2  PY2 comparison 1.6776371    1
# 3   BP comparison 0.8301721    2
# 4  PY1  treatment 0.6900511    1
# 5  PY2 comparison 0.6857421    3
# 6  PY1  treatment 1.4835672    3

library(ggplot2)

blues <- RColorBrewer::brewer.pal(5, "Blues")
oranges <- RColorBrewer::brewer.pal(5, "Oranges")

ggplot(df, aes(x = type, y = marg, fill = interaction(factor(fact), type))) +
  geom_bar(stat = "identity") +
  facet_wrap(~ year) +
  scale_fill_manual(values = c(blues, oranges))

阴谋

于 2015-10-30T15:26:24.417 回答