x轴上的对齐误差设置限制

时间:2017-11-29 20:15:27

标签: r plot ggplot2

我正在处理一个使用months作为离散x轴变量的数据集。我有3年和12个月的数据。我想生成一个仅显示6月,7月,8月和9月4个月的箱形图;在我的数据中以数字方式对应于6,7,8和9个月。我也通过“治疗”进行区分,并希望每年分别绘制,所以我使用了facet函数。

以下是一些示例数据:

 treatment      date  year month   Day  mean_VWC
      <chr>     <chr> <int> <int> <int>     <dbl>
1   control  1/1/2016  2016     1     1 0.2607630
2   control  1/1/2017  2017     1     1 0.2688776
3   control 1/10/2016  2016     1    10 0.2780299
4   control 1/10/2017  2017     1    10 0.2477122
5   control 1/11/2016  2016     1    11 0.2847904
6   control 1/11/2017  2017     1    11 0.2627695

以下是我正在使用的代码:

ggplot(soil.mc_day, aes(as.factor(month), mean_VWC, fill=treatment)) +
  geom_boxplot(position=position_dodge(width=1), size = .5, outlier.colour = "black", color="black") +
  facet_wrap(~ year) +
  scale_x_discrete(limit = c(6,7,8,9),
                   labels=as.character(c("Jun","Jul","Aug","Sep")))

Here is the resulting plots

正如您所看到的,它正在截断我想要的数据,但x轴的标记和标签是偏离的,甚至延伸到图的右端。任何人都知道可能会发生什么?

我也很快就会提到,我已经玩过休息功能,没有在x轴上设置限制。它显示我的x轴与技巧/标签正确对齐,但正如您所看到的那样绘制所有数据b / c我没有应用限制功能。这是代码:

ggplot(soil.mc_day, aes(as.factor(month), mean_VWC, fill=treatment)) +
  geom_boxplot(position=position_dodge(width=1), size = .5, outlier.colour = "black", color="black") +
  facet_wrap(~ year) +
  scale_x_discrete(breaks = c(6,7,8,9),
                   labels=as.character(c("Jun","Jul","Aug","Sep"))) +
theme(axis.text.x = element_text(angle = 90, vjust = 0.3))

And the resulting figure...

所以,我的最终问题是:第一张图中x轴标签上发生了什么,我该如何解决?

谢谢。

1 个答案:

答案 0 :(得分:1)

很难说没有看到完整的数据集,但似乎你试图限制要在ggplot调用中绘制的数据,而不是在将数据输入ggplot之前。

在运行绘图功能之前,您是否尝试过滤数据?

这样的事情:

df <- soil.mc_day %>%
  filter(month %in% seq(6, 9)) %>%
  mutate(month = factor(month, labels = c("June", "July", "August", "September"))

然后使用没有轴缩放的绘图。

df %>%
  ggplot(aes(x = month, y = mean_VMC, fill = treatment)) +
  geom_boxplot(position = position_dodge(width = 1), 
               size = 0.5, 
               color = "black", 
               outlier.color = "black") +
  facet_wrap(~ year)