在R中使用QQ线的QQ图面换行

Posted

技术标签:

【中文标题】在R中使用QQ线的QQ图面换行【英文标题】:Q-Q plot facet wrap with QQ line in R 【发布时间】:2021-10-05 13:55:55 【问题描述】:

如何生成 qqnorm 的分面包装,显示某些数据的 qqlines?

This question 生成 qqplot 但未在图上绘制真正的 qqline(仅数据的平滑 lm)。代码是从链接的问题中复制而来的。

library(plyr)

# create some data
set.seed(123)
df1 <- data.frame(vals = rnorm(1000, 10),
                  y = sample(LETTERS[1:3], 1000, replace = TRUE),
                  z = sample(letters[1:3], 1000, replace = TRUE))

# calculate the normal theoretical quantiles per group
df2 <- ddply(.data = df1, .variables = .(y, z), function(dat)
             q <- qqnorm(dat$vals, plot = FALSE)
             dat$xq <- q$x
             dat

)

# plot the sample values against the theoretical quantiles
ggplot(data = df2, aes(x = xq, y = vals)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE) +
  xlab("Theoretical") +
  ylab("Sample") +
  facet_grid(y ~ z)

【问题讨论】:

如果您包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出,则更容易为您提供帮助。你的输入数据是什么样的? geom_qq_line()geom_qq() 可能会满足您的需求。 链接中包含可重现的示例。我现在已经编辑并复制并粘贴到我的问题中 【参考方案1】:

我认为您不需要plyr 或致电qqnorm。你可以这样做

ggplot(data = df1, aes(sample=vals)) +
  geom_qq() + 
  geom_qq_line(color="red") + 
  xlab("Theoretical") +
  ylab("Sample") +
  facet_grid(y ~ z)

【讨论】:

以上是关于在R中使用QQ线的QQ图面换行的主要内容,如果未能解决你的问题,请参考以下文章

r QQ情节功能。 v2使用data.table库读取数据

如何重新排列qq好友

R绘制QQ图并解读QQ图

怎么把qq好友按添加时间排序

在R中的卡方QQ图中绘制qqline

边界字符的使用