首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中的包fitdistrplus中缺少函数ppcomp的图例

R中的包fitdistrplus中缺少函数ppcomp的图例
EN

Stack Overflow用户
提问于 2016-07-06 00:04:16
回答 1查看 176关注 0票数 0

我有一个价值超过2000万的大数据,由于隐私和代码的可重复性,我使用mydata来代替它。

代码语言:javascript
复制
set.seed(1234)
mydata <- rlnorm(28000000,3.14,1.3)

我想找出哪些已知的发行版最适合mydata,因此选择了fitdistrplus包中的fitdist函数。

代码语言:javascript
复制
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图,帮助我选择最适合的分布。

代码语言:javascript
复制
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,缺少不同颜色的线注释,只有文本注释显示,我该怎么办?

我尝试了一些值很少的数据集,它起作用了。因此,大数据引出了一个问题,我应该做些什么才能让图例变得完美?

EN

回答 1

Stack Overflow用户

发布于 2016-07-06 15:33:31

很多函数问题都可以用fix(function)来解决,这样我们就可以知道函数是如何工作的。

fix(ppcomp)

我找到了一些关于传说的代码,

代码语言:javascript
复制
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添加到图例中,它就可以工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38207947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档