如何在不排除数据的情况下更改Y轴(未显示离群值,但占中值)?

时间:2019-06-02 13:35:31

标签: r ggplot2 axis outliers

A用ggplot2绘制箱形图:

ggplot(datasilice, aes(x = Duree_exposition_4gpes, y = CD25plusCD127moinsFoxP3plus_num)) + 
  geom_boxplot(aes(fill= Duree_exposition_4gpes), colour = "black", outlier.shape = 1, show.legend = FALSE) +
  scale_y_continuous(limits=c(0, 160), breaks = seq(0,160,20))

我明白了:

with outliers

我不想显示异常值,因此,我将代码更改为:

ggplot(datasilice, aes(x = Duree_exposition_4gpes, y = CD25plusCD127moinsFoxP3plus_num)) + 
  geom_boxplot(aes(fill= Duree_exposition_4gpes), colour = "black", outlier.shape = NA, show.legend = FALSE) +
  scale_y_continuous(limits=c(0, 160), breaks = seq(0,160,20))

我明白了:

without outliers

到目前为止,太好了。 现在,我想减少我的Y轴,所以我减少了限制和中断:

ggplot(datasilice, aes(x = Duree_exposition_4gpes, y = CD25plusCD127moinsFoxP3plus_num)) + 
  geom_boxplot(aes(fill= Duree_exposition_4gpes), colour = "black", outlier.shape = NA, show.legend = FALSE) +
  scale_y_continuous(limits=c(0, 120), breaks = seq(0,120,20))

但是现在看看如何修改第二列的中位数?

changed median

所以我的问题是,如何在不排除数据的情况下更改Y轴(未显示离群值,但占中位数)?

我尝试仅修改“中断”或“限制”,但它没有达到预期的效果...

1 个答案:

答案 0 :(得分:1)

是的,这不是直观的行为(至少会发出警告消息)。...您需要使用coord_cartesian来简单地放大而不更改数据。 cf.

ggplot(mtcars, aes(x = cyl, y = mpg)) + 
+     geom_boxplot(aes(fill= cyl, group=cyl), colour = "black", outlier.shape = NA, show.legend = FALSE) +
+     coord_cartesian(ylim=c(0,25))

vs。

ggplot(mtcars, aes(x = cyl, y = mpg)) + 
+     geom_boxplot(aes(fill= cyl, group=cyl), colour = "black", outlier.shape = NA, show.legend = FALSE) +
+     scale_y_continuous(limits=c(0,25))