从数据框数据限制 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)
在此代码中,我想将 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)