绘制和操纵boxplot x轴标签&使用ggplot符合目的的图例

时间:2014-10-31 05:44:37

标签: r ggplot2 boxplot

我有一个包含2个AUC列的数据帧(一个根据观察到的数据计算,另一个根据模拟数据计算)。数据框的子集如下所示:

ID  AUC.OBS AUC.SIM  FED  FORM
1    100      110    0     1
1    100      110    0     1
1    105      99     0     2
2    150      140    1     1   
2    120     130     0     2
2    120     130     0     2
3    70       90     1     1
3    80       75     1     2

等等。其中ID是主题ID列。 FED是指药物是否处于喂养状态(1)或禁食状态(0)。 FORM指定给出哪种药物制剂(1 = FORM_A; 2 = FORM_B)。我担心的是,我想为FED和FORM上观察到的和模拟的AUC制作一个箱线图:

  1. 用于模拟AUC箱图的标题为“模拟”的箱线图的x轴和用于观察到的AUC箱图的“观察”。
  2. 一个图例,显示“数据源”为“模拟”和“观察”(例如,观察和模拟箱图有两种不同的颜色)。
  3. 我正在使用ggplot。我从以下开始,但我还没有到达那里。

    plotdata$ID <- as.factor(plotdata$ID)   
    plotdata$FED <- as.factor(plotdata$FED)
    levels(plotdata$FED) <- c("Fasted","Fed") 
    
    plotdata$FORM <- as.factor(plotdata$FORM)
    levels(plotdata$FORM) <- c("FORM_A","FORM_B")
    
    libraray(ggplot2) 
    plotobj <- NULL
    plotobj <-  ggplot(data=plotdata)
    plotobj <- plotobj + geom_boxplot(aes(x = ??, y = AUC.OBS), position=position_dodge(width=0.9))
    plotobj <- plotobj + scale_x_discrete("?"))
    plotobj <- plotobj + scale_y_continuous("AUC")
    plotobj <- plotobj + ggtitle("VPC of drug exposure\n")
    plotobj <- plotobj + facet_wrap(~FED+FORM, ncol=2)
    plotobj
    

    我会感谢您对如何修改我的代码以实现此目的的指导。

1 个答案:

答案 0 :(得分:0)

使用ggplot,可以通过以正确的格式获取数据来实现快乐:长。

library(reshape2)
names(plotdata)[2:3] <- c("Simulated", "Observed")
plotdata.long <- melt(plotdata, id.vars = "ID",
                      variable.name = "Data_Source", value.name = "AUC")

ggplot(plotdata, aes(x = Data_Source, color = Data_Source, y = AUC)) +
  geom_boxplot() +
  ggtitle("VPC of drug exposure\n")

如果您不喜欢下划线,我认为调整标签的最简单方法是使用labs()。添加到你的情节:

labs(x = "Data Source", color = "Data Source")