在 ggplot 中创建 GEV 分布时出错

问题描述 投票:0回答:1

我尝试使用 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)

如有任何帮助或反馈,我们将不胜感激!

谢谢!

r ggplot2 probability-density
1个回答
0
投票

您使用的 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')

© www.soinside.com 2019 - 2024. All rights reserved.