0

我有一个格式为的文本文件

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 

我想做的是在给定日期范围内的散点图中绘制其中几个参数。我可以很容易地绘制其中一个使用

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

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

4

1 回答 1

5

听起来您只想在一个散点图上绘制几个变量,每个变量都用颜色编码。使用 'ggplot2' 和 'reshape2' 包很容易做到这一点。

第 1 步:融合数据,使所有值都在一列中。在这种情况下,我只是选择 [Date] 列(作为键)和第 4 到 7 列进行绘图,因为它们具有相似的值范围。

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

这看起来像这样:

         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

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

library(ggplot2)
ggplot(plot_Data, aes(x=Date, y=value, col=variable)) + geom_point()

您应该能够从这里进行调整以满足您的需求。

于 2013-02-04T16:24:28.993 回答