如何从图形中获取值?

How do I obtain values from a graphic?

我进行了分布拟合并查看了 Q-Q 图,想知道是否有一种简单的方法可以从图形中获取相应的值。

library("fitdistrplus")
data <- c(1050000, 1100000, 1230000, 1300000, 1450000, 1459785, 1654000, 1888000)
lognormalfit <- fitdist(data, "lnorm")
qqcomp(lognormalfit)

在最后一行代码中,我收到了 Q-Q-Plot,但没有计算值。但我也对价值观感兴趣。我怎样才能获得它们?

此致 诺比

为了详细说明我上面的评论,您可以像这样在 R 中编辑函数:

qqcompValues <- edit(qqcomp)

在编辑器中,将第 111 行替换为以下内容:

return(data.frame(x=fittedquant, y=sdata))

请注意,以上编辑假定您使用的是默认 plotstyle="graphics" 函数参数。

然后你可以这样得到QQ值:

qqValues <- qqcompValues(lognormalfit)
qqValues
        x       y
1 1026674 1050000
2 1158492 1100000
3 1247944 1230000
4 1327616 1300000
5 1407939 1450000
6 1497825 1459785
7 1613479 1654000
8 1820639 1888000

qqcomp 有一个选项可以使用 ggplot2 生成图表:这种类型的图表 returns 带有数据的对象。因此,您可以使用

获取绘图和数据
plotData <- qqcomp(lognormalfit, plotstyle = "ggplot") 

然后您可以使用

从绘图对象中获取相关数据
plotData$data
#   values   ind   sdata
#1 1026674 lnorm 1050000
#2 1158492 lnorm 1100000
#3 1247944 lnorm 1230000
#4 1327616 lnorm 1300000
#5 1407939 lnorm 1450000
#6 1497825 lnorm 1459785
#7 1613479 lnorm 1654000
#8 1820639 lnorm 1888000