从数据框数据限制 Y 轴。 (在 max(ids, na.rm = TRUE) 中:max 没有非缺失参数;返回 -Inf)

Limiting Y axis from data frame data. (In max(ids, na.rm = TRUE) : no non-missing arguments to max; returning -Inf)

在此代码中,我想将 y 轴限制在 15 - 30 之间,但我在这样做时遇到了问题。到目前为止,这是我的代码。

a <- c(15.8, 18.1) 
b <- c(20.2, 26.1)
c <- c(24.2, 30)
z <- c(24.5, 35) 
Coldwater <- cbind(z, a) %>% data.frame("min"= min(Coldwater$a), "max"=max(Coldwater$a))  
Coolwater <- cbind(z, b) %>% data.frame("min"= min(Coolwater$b), "max"=max(Coolwater$b)) 
Warmwater <- cbind(z, c) %>% data.frame("min"= min(Warmwater$c), "max"=max(Warmwater$c))  
plot <- ggplot() + geom_area(data = Warmwater, aes(z, c, fill = "Warmwater"))+ geom_area(data = Coolwater, aes(z, b, fill = "Coolwater")) + geom_area(data = Coldwater, aes(z, a, fill = "Coldwater"))  + xlab("Maximum Air Temperature (°C)") + ylab("Water Temperature at 1600 hours (°C)")
plot 

plot as it is with geom_area

剧情我搞定了。我现在唯一想要的就是限制它。但是,我收到这条消息

Warning messages: 1: In max(ids, na.rm = TRUE) : no non-missing arguments to max; returning -Inf 2: In max(ids, na.rm = TRUE) : no non-missing arguments to max; returning -Inf 3: In max(ids, na.rm = TRUE) : no non-missing arguments to max; returning -Inf

我试过 ylim 和 scale_y_continuous 等方法都没有帮助。

我在网上查了我的问题,但没有一个非常简洁的答案,而且我对 R 的技能水平不是最高的,所以不幸的是,我找不到答案。

也许这就是您要找的?您可以使用例如设置限制coord_cartesian 这将简单地“缩放”您要显示的数据范围:

library(ggplot2)

ggplot() +
  geom_area(data = Warmwater, aes(z, c, fill = "Warmwater")) +
  geom_area(data = Coolwater, aes(z, b, fill = "Coolwater")) +
  geom_area(data = Coldwater, aes(z, a, fill = "Coldwater")) +
  xlab("Maximum Air Temperature (°C)") +
  ylab("Water Temperature at 1600 hours (°C)") +
  coord_cartesian(ylim = c(15, 30), expand = FALSE)

数据

a <- c(15.8, 18.1) 
b <- c(20.2, 26.1)
c <- c(24.2, 30)
z <- c(24.5, 35)
Coldwater <- data.frame(z, a)
Coolwater <- data.frame(z, b)
Warmwater <- data.frame(z, c)