这里有很多关于使用QQ图的线程,但我正在尝试找出如何手工计算一个,在这个过程中,我想模拟ggpubr
中使用的一个,因为它看起来比base R版本更好。到目前为止,我至少看起来用这个方法在base R中生成了一个QQ图:
#### Load Libraries ####
library(tidyverse)
library(ggpubr)
#### Organize Data ####
x <- sort(iris$Petal.Length)
rank <- c(1:150)
perc.scale <- scale(rank)
df <- data.frame(x,
rank,
perc.scale)
#### Plot in Base R ####
plot(perc.scale,
x,
xlab = "Theoretical Quantiles",
ylab = "Sample Quantiles",
main = "Normal Q-Q Plot")
结果大多和基R版差不多,但QQ线我还没搞清楚。
类似地,我可以对我的数据使用ggqqplot(x)
来得到:
但是当我尝试用手工计算的数据在ggplot
中重现它时:
df %>%
ggplot(aes(x=perc.scale,
y=x))+
geom_point()+
geom_smooth(method = "lm",
color = "black",
se = F,
linewidth = .5)+
theme_pubr()+
labs(x="Theoretical",
y="Sample")
它看起来还是完全不一样:
**我的主要问题是:1)如何获得正确的回归线,2)如何显示标准误差区域?**我也不确定为什么ggplot
版本与ggpubr
版本相比看起来旋转了,但现在这并不重要。
1条答案
按热度按时间gmol16391#
你可以使用
stat_qq_line
来得到ggplot
中的qq图,如下所示:创建于2023年1月29日,使用reprex v2.0.2
您可以使用
qqplotr
和stat_qq_band
来添加置信区间,如下所示:创建于2023年1月29日,使用reprex v2.0.2