Как получить значения из графики? - PullRequest
0 голосов
/ 29 сентября 2018

Я выполнил подборку дистрибутива, посмотрел на QQ-Plot и подумал, есть ли простой способ получить соответствующие значения из графики.

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

С последней строкойЯ получаю код QQ-Plot без расчета значений.Но меня также интересуют ценности.Как я могу получить их?

С уважением, Норби

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018

qqcomp имеет возможность создать график, используя ggplot2: этот тип графика возвращает объект с данными.Таким образом, вы можете получить график и данные с помощью

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
0 голосов
/ 30 сентября 2018

Чтобы пояснить мой комментарий выше, вы можете отредактировать функцию в 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
...