В легенде отсутствует функция ppcomp в пакете fitdistrplus в R
У меня есть большие данные с более чем 20 миллионами значений. Благодаря конфиденциальности и воспроизводимости кодов, я использую mydata для их замены.
set.seed(1234)
mydata <- rlnorm(28000000,3.14,1.3)
Я хочу найти, какие известные дистрибутивы подходят mydata
лучше всего, так что функция fitdist
в упаковке fitdistrplus
выбран.
library(fitdistrplus)
fit.lnorm <- fitdist(mydata,"lnorm")
fit.weibull <- fitdist(mydata, "weibull")
fit.gamma <- fitdist(mydata, "gamma", lower = c(0, 0))
fit.exp <- fitdist(mydata,"exp")
Затем я использую ppcomp
функция рисования графика PP, чтобы помочь мне выбрать наиболее подходящее распределение.
library(RColorBrewer)
tiff("./pplot.tiff",res = 300,compression = "lzw",height = 6,width = 10,units = "in",pointsize = 12)
ppcomp(list(fit.lnorm,fit.weibull, fit.gamma,fit.exp), fitcol = brewer.pal(9,"Set1")[1:4],legendtext = c("lnorm","weibull", "gamma","exp"))
dev.off()
Абсолютно логнормально подходит mydata
лучше, но взгляните на legend
графика отсутствует линейная аннотация разными цветами, только текстовая аннотация показывает, что мне делать?
Я пробовал несколько наборов данных с несколькими значениями, и это сработало. Таким образом, большие данные приводят к вопросу, что я должен сделать, чтобы сделать легенду идеальной?
1 ответ
Многие функциональные вопросы могут быть выполнены fix(function)
Таким образом, мы могли бы знать, как работает функция.
fix(ppcomp)
И я нахожу некоторые коды о легенде,
if (addlegend) {
if (missing(legendtext))
legendtext <- paste("fit", 1:nft)
if (!largedata)
legend(x = xlegend, y = ylegend, bty = "n", legend = legendtext,
pch = fitpch, col = fitcol, ...)
else legend(x = xlegend, y = ylegend, bty = "n", legend = legendtext,
col = fitcol, ...)
}
Затем я добавляю lty=1
к легенде, и это работает.