如何使用ggplot

时间:2016-06-24 02:32:29

标签: r ggplot2

我正在运行以下代码行

 bp <- ggplot(data, aes(x = Month, y = days, group = Month)) + geom_boxplot()+facet_wrap(~Depth)

工作正常并生成3个不同深度的3个图表,每个深度包含每个月的箱图(我不能发布img它)

但是,我想在一个图表上显示它们,深度颜色编码为3个变量(25,100和300)。 我怎么做到这一点? 我的数据看起来像这样

 depth month days
  25     1    49
  25     1    51
  100    1    52
  100    1    55 
  300    1    52
  300    1    50
  25     2    47
  25     2    48
  100    2    53
  100    2    57
  300    2    56
  300    2    59
  ...   ...  ... 

如果这是一个重复的问题,我道歉但我看到的问题似乎并不适合我的需要 我尝试过使用

bp + geom_boxplot(position = position_dodge(width = 0.8)) 

建议here,但没有创建一个图

感谢

2 个答案:

答案 0 :(得分:1)

我不确定要求&#34;深度颜色编码&#34;所以,让我们开始要求让他们一起#34;所有在一个情节&#34;。您可以使用交互功能构建一个双向分组,以便geom_boxplot得到尊重:

 bp <- ggplot(dat, aes(x = interaction(month,depth, sep=" x "), y = days)) + 
                   geom_boxplot()
 bp

enter image description here

这可能是所要求的:

 bp <- ggplot(data, aes(x = group, y = days, 
                        group = interaction(month, depth) , colour = as.factor(depth) )) + 
          geom_boxplot() 
 bp

enter image description here

答案 1 :(得分:1)

如果我正确理解您的问题,您的任务可以通过以下代码完成,

data <- read.table(text = "depth month days
25     1    49
25     1    51
100    1    52
100    1    55 
300    1    52
300    1    50
25     2    47
25     2    48
100    2    53
100    2    57
300    2    56
300    2    59", header = TRUE)

首先,创建一个新变量group

data$group <- with(data, paste("Month:", month, ",depth:", formatC(depth, width = 3, flag = 0), sep = ""))

然后绘制箱线图,您必须使用scale_colour_manual()指定颜色。

bp <- ggplot(data, aes(x = group, y = days, group = group, colour = group)) + geom_boxplot() + scale_colour_manual(values = rep(1:3, 2))
bp