dat <- structure(list(id = c(30L, 40L, 50L), f1 = c(0.841933670833,
1.47207692205, 0.823895293045), f2 = c(0.842101814883, 1.48713866811,
0.900091982861), f3 = c(0.842759547545, 1.48717177671, 0.900710334491
), f4 = c(1.88961562347, 1.48729643008, 0.901274168324), f5 = c(1.99808377527,
1.48743226992, 0.901413662472), f6 = c(0.841933670833, 1.48713866811,
0.901413662472)), .Names = c("id", "f1", "f2", "f3", "f4", "f5",
"f6"), class = "data.frame", row.names = c(NA, -3L))
ここから使用しますmelt
。詳細についてはお読み?melt.data.frame
ください。しかし、一言で言えば、これは「ワイド」フォーマットから「ロング」フォーマットにデータを取ります。
library(reshape2)
dat.m <- melt(dat, id.vars='id')
> dat.m
id variable value
1 30 f1 0.8419337
2 40 f1 1.4720769
3 50 f1 0.8238953
4 30 f2 0.8421018
5 40 f2 1.4871387
6 50 f2 0.9000920
7 30 f3 0.8427595
8 40 f3 1.4871718
9 50 f3 0.9007103
10 30 f4 1.8896156
11 40 f4 1.4872964
12 50 f4 0.9012742
13 30 f5 1.9980838
14 40 f5 1.4874323
15 50 f5 0.9014137
16 30 f6 0.8419337
17 40 f6 1.4871387
18 50 f6 0.9014137
>
次に、好きなようにプロットします。
ggplot(dat.m, aes(x=id, y=value, colour=variable)) +
geom_line() +
geom_point(data=dat.m[dat.m$variable=='f2',], cex=2)
ここaes
で、x値、y値、色/色などの美学を定義します。次に、「レイヤー」を追加します。ggplot()
前の例では、の部分で定義したものの行を追加し、変数 にのみ配置するgeom_line()
ポイントを追加しました。geom_point
f2
以下に、で滑らかな線を追加しましたgeom_smooth()
。これが何をしているのかについてもう少し詳しくは、ドキュメントを参照してください?geom_smooth
。
ggplot(dat.m, aes(x=id, y=value, colour=variable)) +
geom_smooth() +
geom_point(data=dat.m[dat.m$variable=='f2',], shape=3)
またはすべての形。ここで私はの美学に形を置きggplot()
ます。ここに配置することで、毎回指定するのではなく、連続するすべてのレイヤーに適用されます。ggplot()
ただし、後のレイヤーで提供された値を上書きできます。
ggplot(dat.m, aes(x=id, y=value, colour=variable, shape=variable)) +
geom_smooth() +
geom_point() +
geom_point(data=dat, aes(x=id, y=f2, color='red'), size=10, shape=2)
ただし、少しggplot
理解するには時間がかかります。ドキュメントおよびggplot2
Webサイトに記載されているいくつかの例を実行してください。あなたの経験が私のようなものであれば、数日または数週間それと戦った後、それは最終的にクリックします。データに関しては、にデータを割り当ててdat
もコードは変わりません。 dat <- read.csv(...)
。data
組み込み関数なので変数としては使用しません。