我有一个价值超过2000万的大数据,由于隐私和代码的可重复性,我使用mydata来代替它。
set.seed(1234)
mydata <- rlnorm(28000000,3.14,1.3)我想找出哪些已知的发行版最适合mydata,因此选择了fitdistrplus包中的fitdist函数。
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函数绘制P-P图,帮助我选择最适合的分布。
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,缺少不同颜色的线注释,只有文本注释显示,我该怎么办?
我尝试了一些值很少的数据集,它起作用了。因此,大数据引出了一个问题,我应该做些什么才能让图例变得完美?
发布于 2016-07-06 15:33:31
很多函数问题都可以用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添加到图例中,它就可以工作了。
https://stackoverflow.com/questions/38207947
复制相似问题