QQ情节:两个以上数据

时间:2013-11-30 10:57:02

标签: r plot

我想绘制一张与此图相似的QQ图:

http://i.stack.imgur.com/OmyCu.png

我设法使用两个样本获得QQ图,但我不知道如何在图中添加第三个。 这是我的结果:

http://i.stack.imgur.com/6VkgA.png

以下是我使用的代码:

qqplot(table$Bedouin, table$Tunisia, xlim = c(-0.25,0.25), ylim = c(-025,0.25))

在我的表格数据框中,我想添加其他人群。但我不能。

提前谢谢。

2 个答案:

答案 0 :(得分:8)

我想你正在寻找一个排序值的散点图,因为所有变量都存储在同一个数据框中。

示例数据集:

set.seed(10)
dat <- data.frame(A = rnorm(20), B = rnorm(20), C = rnorm(20))

这是一种使用基本R函数创建绘图的方法:

# create a QQ-plot of B as a function of A
qqplot(dat$A, dat$B, xlim = range(dat), ylim = range(dat), 
       xlab = "A", ylab = "B/C")
# create a diagonal line
abline(a = 0, b = 1)
# add the points of C
points(sort(dat$A), sort(dat$C), col = "red")
# create a legend
legend("bottomright", legend = c("B", "C"), pch = 1, col = c("black", "red"))

enter image description here

答案 1 :(得分:0)

您可以添加行

par(new=TRUE)

然后再次使用qqplot()过度绘制第一个图,如下所示:

set.seed(10)
dat <- data.frame(A = rnorm(20), B = rnorm(20), C = rnorm(20))

# create a QQ-plot of B as a function of A
qqplot(dat$A, dat$B, 
       xlim = range(dat), ylim = range(dat), 
       xlab = "Distribution A", ylab = "Other distributions")

# set overplotting
par(new=TRUE)

# create a QQ-plot of B as a function of C
qqplot(dat$A, dat$C, 
       xlim = range(dat), ylim = range(dat), 
       xlab = "Distribution A", 
       ylab = "Other distributions",
       col = "red")

# create a diagonal line
abline(a = 0, b = 1)

# create a legend
legend("bottomright", legend = c("B", "C"), pch = 1, col = c("black", "red"))