我尝试使用 ggplot 创建 GEV 分布,但收到持续错误。然而,我使用“绘图”功能成功创建了这些曲线,就像这样:
library(evir)
Gpdf <- plot(dgev(seq(1,500),mu=170.19, sigma=53.59, xi=0.09),type = 'l',col='black', lty =
1, ylim = c(0,0.010), lwd = 5, ylab = "Density",xlab = "mm/day", cex.lab = 2, cex.axis = 2,
main = "Global", cex.main = 4) + lines(dgev(seq(1,500),mu = 195.38, sigma = 63.13, xi =
-0.05),type='l', col = 'blue', lty = 1, lwd = 5)
ggplot 尝试:
library(ggplot2)
library(evir)
Gpdf <- ggplot(geom_density(dgev(seq(1,500),mu = 170.19, sigma = 53.59, xi = 0.09), color =
"black", size = 3, linetype = "solid", ylim = c(0,0.010), ylab = "Density", xlab= "mm/day",
main = "Global", cex.main=4) + geom_density(dgev(seq(1,500),mu = 195.38, sigma = 63.13, xi =
-0.05), col="blue", linetype = "solid") + theme(plot.title = element_text(size = 54))+
theme(axis.title = element_text(size = 54)) + theme(axis.text = element_text(size =
54))+theme(panel.background = element_blank()) + theme(plot.title = element_text(size = 54,
face = "bold")))
这会产生此错误:
Error in dgev(seq(1, 500), mu = 170.19, sigma = 53.59, xi = 0.09) :
unused arguments (mu = 170.19, sigma = 53.59, xi = 0.09)
如有任何帮助或反馈,我们将不胜感激!
谢谢!
您使用的 ggplot 语法完全错误。此外,您应该以长格式数据帧的形式传递数据。一列应该是 x 值(两次重复 1:500),一列应该是 y 值(两个
dgev
向量连接在一起),第三列标记每对 x、y 属于两行中的哪一行至:
library(evir)
library(ggplot2)
df <- data.frame(x = rep(1:500, 2),
y = c(dgev(1:500, mu = 170.19, sigma = 53.59, xi = 0.09),
dgev(1:500, mu = 195.38, sigma = 63.13, xi = -0.05)),
var = rep(c('1', '2'), each = 500))
ggplot(df, aes(x, y, color = var)) +
geom_line(linewidth = 2) +
theme_classic(base_size = 20) +
scale_color_manual(values = c('black', 'blue')) +
labs(title = 'Global', x = 'mm/day', y = 'Density')