我一直在试验这两者ggplot2
并lattice
绘制数据面板。我在思考ggplot2
模型时遇到了一些麻烦。特别是,如何在每个面板上绘制包含两组数据的散点图:
lattice
我可以这样做:
xyplot(Predicted_value + Actual_value ~ x_value | State_CD, data=dd)
这会给我每个 State_CD 的面板和每列
我可以做一列ggplot2
:
pg <- ggplot(dd, aes(x_value, Predicted_value)) + geom_point(shape = 2)
+ facet_wrap(~ State_CD) + opts(aspect.ratio = 1)
print(pg)
我无法理解的是如何将 Actual_value 添加到上面的 ggplot 中。
EDIT Hadley 指出,使用可重现的示例确实会更容易。这是似乎有效的代码。有没有更好或更简洁的方法来用 ggplot 做到这一点?为什么向 ggplot 添加另一组点的语法与添加第一组数据的语法如此不同?
library(lattice)
library(ggplot2)
#make some example data
dd<-data.frame(matrix(rnorm(108),36,3),c(rep("A",24),rep("B",24),rep("C",24)))
colnames(dd) <- c("Predicted_value", "Actual_value", "x_value", "State_CD")
#plot with lattice
xyplot(Predicted_value + Actual_value ~ x_value | State_CD, data=dd)
#plot with ggplot
pg <- ggplot(dd, aes(x_value, Predicted_value)) + geom_point(shape = 2) + facet_wrap(~ State_CD) + opts(aspect.ratio = 1)
print(pg)
pg + geom_point(data=dd,aes(x_value, Actual_value,group=State_CD), colour="green")
格子输出如下所示:(
来源:cerebralmastication.com)
和 ggplot 看起来像这样:(
来源:cerebralmasastication.com)