3

私はggplot(そしてある程度R)に完全に慣れていません。ggplotを使用して作成できるグラフの品質に驚かされ、ggplotを使用して単純な複数折れ線グラフを作成する方法を学ぼうとしています。

残念ながら、私がやろうとしていることに近づくのに役立つチュートリアルは見つかりませんでした。

次のデータを含むCSVファイルがあります。

id,f1,f2,f3,f4,f5,f6
30,0.841933670833,0.842101814883,0.842759547545,1.88961562347,1.99808377527,0.841933670833
40,1.47207692205,1.48713866811,1.48717177671,1.48729643008,1.48743226992,1.48713866811
50,0.823895293045,0.900091982861,0.900710334491,0.901274168324,0.901413662472,0.901413662472

プロットしたい:

  1. X軸の最初の列(id)
  2. 折れ線グラフとしての後続の各「列」。線のポイント間をスムージングして、滑らかな線を作成します。
  3. f1、f2の凡例...。
  4. 線の色を指定し、列f2の折れ線グラフにマーク(たとえば、十字、つまり'+')を追加します(たとえば)。

私はggplotを初めて使用するので、ファイルをRに読み込む以外のことはしていません。

上記のようにプロットを作成するのに役立つ情報は、非常に教育的であり、ggplotの学習曲線を短縮するのに役立ちます。

4

1 に答える 1

3
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_pointf2

以下に、で滑らかな線を追加しました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理解するには時間がかかります。ドキュメントおよびggplot2Webサイトに記載されているいくつかの例を実行してください。あなたの経験が私のようなものであれば、数日または数週間それと戦った後、それは最終的にクリックします。データに関しては、にデータを割り当ててdatもコードは変わりません。 dat <- read.csv(...)data組み込み関数なので変数としては使用しません。

于 2012-08-01T00:50:12.307 に答える