ggplot2叠加散点图

moa*_*eep 0 r ggplot2

我有一个格式的文本文件

Date,ufov_mean,ufov_stdev,ufov_cov,ufov_int_pl,ufov_int_min,ufov_diff,ufov_nema_int,ufov_nema_dif,cfov_mean,cfov_stdev,cfov_cov,cfov_int_pl,cfov_int_min,cfov_diff,cfov_nema_int,cfov_nema_dif
24/01/11,5187.10,110.10,2.12,8.48,-6.46,7.25,7.40,3.76,5177.55,104.03,2.01,8.68,-6.29,7.25,7.40,3.76                
26/01/11,5182.35,106.65,2.06,6.50,-6.36,7.87,6.42,4.09,5170.29,100.45,1.94,6.45,-5.42,7.54,5.91,3.92                
28/01/11,5183.88,104.99,2.03,7.31,-6.48,9.63,6.87,5.06,5178.99,101.03,1.95,6.16,-6.39,9.08,6.28,4.76                
31/01/11,5183.55,98.35,1.90,5.66,-6.30,7.92,6.00,4.12,5172.41,96.00,1.86,5.71,-5.81,7.92,5.76,4.12                
02/02/11,5183.16,104.20,2.01,6.83,-6.43,7.47,6.61,3.88,5176.24,98.74,1.91,6.06,-5.65,7.47,5.84,3.88                
03/02/11,5184.14,106.77,2.06,8.16,-5.98,7.89,6.99,4.11,5179.31,100.62,1.94,7.45,-5.89,7.89,6.62,4.11 
Run Code Online (Sandbox Code Playgroud)

我想要做的是在给定日期范围内的散点图中绘制其中几个参数.我可以使用它来绘制其中一个

qc<-data.frame(read.csv("tc_h1_qc", header=T))
qc$Date = as.Date(qc$Date, format='%d/%m/%y')
Sys.Date()
Sys.Date()-30

p <- ggplot(qc,aes(x=Date,y=cfov_cov)) + geom_point(shape=1,colour="red") + geom_line(colour="red") + theme_bw() + scale_x_date(labels = date_format("%d/%m/%y"), limits = c(Sys.Date()-30, Sys.Date()))
Run Code Online (Sandbox Code Playgroud)

如何覆盖其他参数,每个参数都有不同的geom_point颜色,并创建一个合适的图例(类似于http://docs.ggplot2.org/0.9.3/facet_grid-27.png样式的图例,虽然我看不到我如何使用facets与我的数据框架结构)?

Din*_*nre 5

听起来你只想在一个散点图上绘制几个变量,每个变量用颜色编码.使用'ggplot2'和'reshape2'软件包相当容易.

第1步:将数据融合,因此所有值都在一列中.在这种情况下,我只是选择[Date]列(作为键),然后选择第4列到第7列,因为它们具有相似的值范围.

library(reshape2)    
plot_Data <- melt(qc[,c(1,4:7)], id="Date")
Run Code Online (Sandbox Code Playgroud)

这看起来像这样:

         Date     variable value
1  2011-01-24     ufov_cov  2.12
2  2011-01-26     ufov_cov  2.06
3  2011-01-28     ufov_cov  2.03
4  2011-01-31     ufov_cov  1.90
5  2011-02-02     ufov_cov  2.01
6  2011-02-03     ufov_cov  2.06
7  2011-01-24  ufov_int_pl  8.48
8  2011-01-26  ufov_int_pl  6.50
9  2011-01-28  ufov_int_pl  7.31
10 2011-01-31  ufov_int_pl  5.66
11 2011-02-02  ufov_int_pl  6.83
12 2011-02-03  ufov_int_pl  8.16
13 2011-01-24 ufov_int_min -6.46
14 2011-01-26 ufov_int_min -6.36
15 2011-01-28 ufov_int_min -6.48
16 2011-01-31 ufov_int_min -6.30
17 2011-02-02 ufov_int_min -6.43
18 2011-02-03 ufov_int_min -5.98
19 2011-01-24    ufov_diff  7.25
20 2011-01-26    ufov_diff  7.87
21 2011-01-28    ufov_diff  9.63
22 2011-01-31    ufov_diff  7.92
23 2011-02-02    ufov_diff  7.47
24 2011-02-03    ufov_diff  7.89
Run Code Online (Sandbox Code Playgroud)

第2步:现在,我们可以轻松地绘制数据,使用[Date]列作为'x'值,将[value]列作为'y'值.我们拆分组,为它们着色,并通过指定颜色添加图例col=variable,如下所示:

library(ggplot2)
ggplot(plot_Data, aes(x=Date, y=value, col=variable)) + geom_point()
Run Code Online (Sandbox Code Playgroud)

您应该可以从这里进行调整以满足您的需求.