Диагональная аблайн () в qplot (R) - PullRequest
0 голосов
/ 26 июня 2018

У меня есть график Q-Q, и я хочу добавить диагональную линию слева направо, используя geom_abline(), но я не могу этого сделать. Я попытался поэкспериментировать с добавлением различных значений к slope и intercept, но не могу понять, как они работают.

qqplot1 <- qplot(sample = TotalOutl$IntenMax, size=I(0.2))
qqplot1 + geom_abline()

enter image description here

EDIT

Это первые 100 значений (из 69971) из набора данных для воссоздания:

> head(TotalOutl$PitchSlope,100)
[1] 206.420 347.554 253.465 142.582 66.740 452.779 378.993 175.202 67.232 310.163 344.753
[12] 152.371 32.810 597.210 283.097 224.434 243.165 114.934 128.275 83.683 165.573 14.770
[23] 844.842 175.110 119.188 581.248 338.125 88.890 84.591 13.427 150.226 267.856 287.526
[34] 443.087 537.364 188.809 176.559 349.574 154.171 71.194 126.877 203.582 66.150 82.363
[45] 341.778 96.092 514.442 471.534 871.443 139.505 468.785 227.930 350.540 284.449 384.741
[56] 373.317 326.618 172.510 470.861 946.482 328.471 193.219 122.543 87.408 174.261 221.541
[67] 233.468 455.817 409.254 106.121 316.740 196.465 300.801 275.126 122.865 135.804 191.313
[78] 139.063 347.188 344.517 268.236 357.009 332.925 145.890 92.050 195.758 269.396 366.989
[89] 274.478 156.439 875.086 191.737 67.716 135.111 457.542 199.416 85.328 108.091 182.435
[100] 298.021

1 Ответ

0 голосов
/ 26 июня 2018

Возможно, есть более плавный путь, но вы можете использовать ggplot_build, чтобы извлечь пределы x и y, а затем вручную вычислить наклон и точку пересечения.Следующие данные иллюстрируют это случайными данными:

set.seed(42)
x <- runif(1000)
qqplot1 <- qplot(sample = x,size=I(0.2))
xlims <- ggplot_build(qqplot1)$layout$panel_ranges[[1]]$x.range
ylims <- ggplot_build(qqplot1)$layout$panel_ranges[[1]]$y.range
rise <- ylims[2]-ylims[1]
run <- xlims[2]-xlims[1]
m <- rise/run
b <- ylims[1] - m*xlims[1]
qqplot1 + geom_abline(slope = m, intercept = b)

Вывод:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...