我有以下表格的数据:
[x] [y1] [y2]
1 0.9 1
2 2.0 2
3 3.1 3
其中(x,y1)是实际值,y2是基于在另一组数据上估计的线性模型对y1的预测。 (x,y1,y2)在数据帧DT中。如何使用在x轴上绘制x并在y轴上绘制y1和y2但具有不同颜色的xyplot来制作散点图?
我能够使用以下代码在ggplot中执行此操作,但认为它看起来不如使用xyplot()命令,并且我想知道在这种情况下是否可以使用xyplot / lattice。
ggplot(DT, aes(x)) + geom_point(aes(y=y1), color="red") + geom_point(aes(y=y2), color = "green")
非常感谢你!
答案 0 :(得分:0)
简单的答案是,您需要让ggplot
的数据整洁,才能轻松完成您想要的操作。既然您没有给我们一个实际的示例,我会生成一些示例数据然后整理它(注意,在这里使用dplyr
和tidyr
)
exampleData <-
iris %>%
filter(Species == "setosa") %>%
slice(1:10) %>%
select(Sepal.Length:Petal.Length)
exampleData
toPlot <-
exampleData %>%
gather(sepalMeasure, size, -Petal.Length)
然后,您可以使用生成的sepalMeasure
列为点着色。对于您的数据,您可以使用一些区分预测点和实际点。
toPlot %>%
ggplot(aes(x = Petal.Length
, y = size
, col = sepalMeasure)) +
geom_point()
答案 1 :(得分:0)
您可以使用公式
中的y1 + y2
绘制2个y变量
d=data.frame(x=1:9,y1=2:10,y2=3:11)
library(lattice)
xyplot(y1+y2~x,d)
编辑: 您可以使用
添加图例 xyplot(y1+y2~x,d,auto.key=TRUE)
使用其他lattice
功能来控制颜色,标签等。
答案 2 :(得分:0)
在R中使用基础图包的with()
,plot()
和points()
函数:
with(datatable,plot(X,Y1))
with(datatable,points(X,Y2))
with(datatable,points(X,Y3))