ggplotで複数データのグラフを重ねる

ggplot2はRのデータ可視化パッケージでグラフを作るときには一番使うであろうパッケージです。

グラフを作る上でほどんどのことはできます。異なるデータフレームをつかったグラフ2つ以上を同じグラフに重ねたいもあると思うので記録です。

データフレームが1つのとき

データフレームが一つ(参照するデータフレームは一つだけ)であれば簡単です。

fig <- ggplot(data = dataframe)+
    geom_point(aes(x=x1,y=y1))+
    geom_point(aes(x=x2,y=y2))

おなじデータフレームに含まれるのならそれぞれの geom_point や geom_line などの aes で x y を指定していけばいいです。わかりやすい。もしx軸は同じならつぎのように書けます。

fig <- ggplot(data = dataframe,aes(x1))+
    geom_point(aes(y=y1))+
    geom_point(aes(y=y2))

データフレームが2つ以上のとき

データフレームが2つのときは次のように ggplot は空にしてそのあとからデータを読み込みましょう。

fig <- ggplot()+
    geom_point(data = dataframe1,aes(x=x1,y=y1))+
    geom_point(data = dataframe2,aes(x=x2,y=y2))

ggplt() では真っ白なキャンバスだけ用意しているイメージです。わかれば簡単ですが案外書いてあるところが少なかったように思います。

実際に使ったグラフ alt text

図1の青線は他の赤、緑線と異なるデータフレームですがうまい具合に組み合わさっています。