使用R绘制GGPLOT2散点图上的两个数据向量

我一直在尝试ggplot2和lattice来绘制数据面板。围绕ggplot2模型,我有一点麻烦。特别地,如何在每个面板上绘制两组数据的散点图:

在格子我可以做到这一点:

xyplot(Predicted_value + Actual_value ~ x_value | State_CD, data=dd)

这将为每个州提供每个州的小组

我可以用ggplot2做一列:

pg <- ggplot(dd, aes(x_value, Predicted_value)) + geom_point(shape = 2) 
      + facet_wrap(~ State_CD) + opts(aspect.ratio = 1)
print(pg)

我不能grok是如何添加Actual_value到上面的ggplot。

编辑哈德利指出,这可以通过可重现的例子更容易。这里的代码似乎有效。有没有更好或更简洁的方式来做这个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")

格子输出如下所示:
alt text http://www.cerebralmastication.com/wp-content/uploads/2009/08/lattice.png

和ggplot看起来像这样:
alt text http://www.cerebralmastication.com/wp-content/uploads/2009/08/ggplot.png

最佳答案
只是跟进了Ian建议的内容:对于ggplot2,你真的希望所有的y轴的东西在一列,另一列是一个因素,表明你想要装饰它。熔化很容易做到这一点。以机智:

qplot(x_value, value, 
      data = melt(dd, measure.vars=c("Predicted_value", "Actual_value")), 
      colour=variable) + facet_wrap(~State_CD)

以下是我的看法:
alt text http://www.cs.princeton.edu/~jcone/example.png

为了弄清楚实际上是什么融化,这里是头脑:

> head(melt(dd, measure.vars=c("Predicted_value", "Actual_value")))
     x_value State_CD        variable      value
1  1.2898779        A Predicted_value  1.0913712
2  0.1077710        A Predicted_value -2.2337188
3 -0.9430190        A Predicted_value  1.1409515
4  0.3698614        A Predicted_value -1.8260033
5 -0.3949606        A Predicted_value -0.3102753
6 -0.1275037        A Predicted_value -1.2945864

你会看到,它将“Predicted_value”和“Actual_value”熔化成一个名为value的列,并添加另一个名为variable的列,让你知道它最初来自哪个列。

转载注明原文:使用R绘制GGPLOT2散点图上的两个数据向量 - 代码日志