Buduję wykres kwantylowo-kwantylowy ze zmiennej o nazwie x
z ramki danych o nazwie df
w przedstawionym poniżej przykładzie roboczym. Chciałbym nazwać punkty zmienną name
mojego zbioru danych df
.Jak mogę oznaczyć punkty wykresu kwantyle-kwantyle złożonego z ggplot2?
Czy można to zrobić w ggplot2 bez uciekania się do bolesnego rozwiązania (zakodowanie rozkładu teoretycznego ręką, a następnie narysowanie go na podstawie empirycznej)?
Edytuj: zdarza się, że tak, dzięki użytkownikowi, który opublikował, a następnie skasował swoją odpowiedź. Zobacz komentarze po odpowiedzi Aruna poniżej. Dzięki Didzisowi za jego sprytne rozwiązanie z ggbuild
.
# MWE
df <- structure(list(name = structure(c(1L, 2L, 3L, 4L, 5L, 7L, 9L,
10L, 6L, 12L, 13L, 14L, 15L, 16L, 17L, 19L, 18L, 20L, 21L, 22L,
8L, 23L, 11L, 24L), .Label = c("AUS", "AUT", "BEL", "CAN", "CYP",
"DEU", "DNK", "ESP", "FIN", "FRA", "GBR", "GRC", "IRL", "ITA",
"JPN", "MLT", "NLD", "NOR", "NZL", "PRT", "SVK", "SVN", "SWE",
"USA"), class = "factor"), x = c(-0.739390016757746, 0.358177826874146,
1.10474523846099, -0.250589535389937, -0.423112615445571, -0.862144579740376,
0.823039669834058, 0.079521521937704, 1.08173649722493, -2.03962942823921,
1.05571087029737, 0.187147291278723, -0.144770773941437, 0.957990771847331,
-0.0546549555439176, -2.70142550075757, -0.391588386498849, -0.23855544527369,
-0.242781575907386, -0.176765072121165, 0.105155860923456, 2.69031085872414,
-0.158320176671995, -0.564560815972446)), .Names = c("name",
"x"), row.names = c(NA, -24L), class = "data.frame")
library(ggplot2)
qplot(sample = x, data = df) + geom_abline(linetype = "dotted") + theme_bw()
# ... using names instead of points would allow to spot the outliers
Pracuję nad adaptacją this gist, i rozważy inne pytania wysyłając do CrossValidated jeśli mam pytania dotyczące diagnostyki regresji, które mogą być interesujące dla użytkowników CV.
ktoś zamieścił nawet bezpośrednie rozwiązanie niż Didzis i usunął go. Było to coś w stylu 'ggplot (df, aes (sample = x)) + geom_text (label = df $ name, stat =" qq ") + geom_abline (typ linii =" kropkowany ")'. Jeśli jesteś zainteresowany. – Arun