我有一个格式为
的文本文件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样式的图例,尽管我看不出如何在数据框结构中使用facet) ?
答案 0 :(得分: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()
您应该可以从这里进行调整以满足您的需求。