使用一个x和多个y值创建散点图

时间:2016-09-22 18:28:52

标签: r ggplot2 scatter-plot lattice

我有以下表格的数据:

[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")

非常感谢你!

3 个答案:

答案 0 :(得分:0)

简单的答案是,您需要让ggplot的数据整洁,才能轻松完成您想要的操作。既然您没有给我们一个实际的示例,我会生成一些示例数据然后整理它(注意,在这里使用dplyrtidyr

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()

enter image description here

答案 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))