R-如何绘制多个叠加图/散点图?

时间:2018-11-28 22:26:48

标签: r plot data-visualization

我正在研究一个机器学习问题,我试图将使用两种不同ML方法的预测与原始测试值进行比较,并查看它们的比较结果,并试图将结果可视化。我已经完成了2个单独的散点图(在测试值和预测值之间),但是我想查看这些值之间的差异。因此,我尝试将数据细分为使用第一个ML算法的100个ytest值,100个预测值(ymle_predict)和使用第二个ML算法的100个预测值(ymap_predict)。

我希望我的x轴代表每个数据点,并且y轴代表该数据点的3个不同值(ytest,ymle_predict和ymap_predict)。

所以我们说:

ytest<- c(1, 2, 3, 4, 5, 6, 7 )
ymle_predict<-c(1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1 )
ymap_predict <- c(1.2, 2.2, 3.2, 4.2, 5.2, 6.2, 7.2 )

其中的值是按顺序排列的,因此ymle_predict中的第二个元素表示ytest中第二个元素的数据点预测。

我想看看这些点之间如何变化,就像让我们说如何看到不同股票(随着每种股票的颜色不同)随时间变化的重叠图一样。但是,这里的时间不是x轴,而是像这样的计数器变量:

i<- c(1,2,3,4,5,6,7)

我尝试将这些元素放在数据框中,但这并没有帮助我得出任何答案。

1 个答案:

答案 0 :(得分:1)

使用ggplot和dplyr:

library(ggplot2)
library(dplyr)

df <- data.frame(ytest = c(1, 2, 3, 4, 5, 6, 7 ),
                 ymle_predict = c(1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1 ),
                 ymap_predict = c(1.2, 2.2, 3.2, 4.2, 5.2, 6.2, 7.2 ),
                 i = c(1,2,3,4,5,6,7))

df.plot <- df %>%
  gather(results, value, -c("i"))


ggplot(df.plot, aes(x=i, y=value, color=results)) +
  geom_point()

plot