在ggplot2中使用ylim时断定的置信区间区域

时间:2018-08-03 15:57:21

标签: r ggplot2

我已经使用ggplot2很长时间了,但是从未遇到过这个问题。我代表一些回归的置信区间。但是,我决定手动控制ylim()。我意识到那些超出y限制的区域被破坏了。看到这张图片:

enter image description here

右侧的红色回归包含非常宽的CL。如您所见,其中的最高点不在ylim范围内。

这是我使用的代码:

ggplot(dataset, aes(x=variable, y=value, fill=Species, colour=Species, linetype = Species)) + 
  geom_smooth(method="lm", formula= y~poly(x,3), level=0.95, alpha=0.2) + 
  xlab("A") +
  ylab("B") + 
  ylim(0, 30) + 
  theme(axis.text.x = element_text(angle = 0, hjust = 0.5, size = 10),
        panel.background = element_blank(),
        legend.position='bottom',
        panel.grid.major = element_line(colour="azure2"),
        axis.line = element_line(colour = "black", 
                      size = 0.15, linetype = "solid")) +
  scale_x_continuous(breaks=seq(1, 10, 1), limits=c(1, 10)) +
  scale_color_manual(values=c("coral4", "coral1", "darkolivegreen3", "darkgoldenrod4", "darkgoldenrod2", "deepskyblue3", "darkorchid3")) +
  scale_fill_manual(values=c("coral4", "coral1", "darkolivegreen3", "darkgoldenrod4", "darkgoldenrod2", "deepskyblue3", "darkorchid3")) +
  scale_linetype_manual(values=c(1,1,1,3,3,2,2))

我想保留这些y限制。我使用coord_cartesian失败。有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

coord_cartesian应该可以,但是您必须删除ylim()

一些数据

set.seed(1)
df <- data_frame(x = -5:5, y = rnorm(11, x^2, 5))

复制您的问题

ggplot(df, aes(x, y)) +
geom_smooth() +
ylim(-1, NA)

使用coord_cartesian

ggplot(df, aes(x, y)) +
geom_smooth() +
coord_cartesian(ylim = c(-1, 40))