2

我正在尝试使用来自 B 和 C 的数据创建散点图,但是我想为 A 中的每个类别创建一个差异散点图。

A           B   C
Monday      2   4
Tuesday     4   2
Monday      3   5
Wednesday   3   10
Friday      7   9

这是我目前拥有的代码,只是用我的数据制作一个普通的散点图。有没有可以用来根据类别自动制作散点图的附加功能或其他东西?

attach(data)
plot(C, B, main="scatterplots",xlab="C", ylab="B", pch=10) 
abline(lm(C~B), col="red")
4

2 回答 2

3

这可能是一个解决方案:

par(mfrow=c(1, length(levels(A))))
for (day in levels(A)){
  subs <- subset(data, A==day)
  plot(subs$C, subs$B, main=day)
  abline(lm(C~B), col="red")  
}

请注意,如果您想在每个图中看到适合的红线,则必须调整您的xlim和值。ylim这有帮助吗?

于 2013-09-10T16:03:06.547 回答
3

显示以另一个变量为条件的图是 lattice 包的设计目的。在您的情况下,它可能很简单:

library(lattice)
xyplot(B~C|A, data=data, type=c('p','r'))

ggplot2 包也使用 faceting 来做到这一点:

library(ggplot2)
qplot( C, B, data=data, facets= A ~ .) + geom_smooth(method='lm')
于 2013-09-10T16:53:31.900 回答