Skip to content

統計R言語:折れ線グラフ(Line plot)の作り方

    統計R言語

    R言語を使って折れ線グラフを作るにはどうしたら良いのでしょうか?ggplot2というパッケージに入っているggplot()という関数を使うことで、簡単に折れ線グラフを作ることができます。

    このR言語シリーズでは、現在イギリス教育テクノロジー研究所の博士課程でPhD取得を目指す筆者が、統計やデータ分析で使っているR言語のメモを共有しています。

    この記事では、R言語で折れ線グラフを使う際の、xy軸の取り方と、ラベルや見出しの付け方などについてわかりやすく説明しています。

    Rで作る折れ線グラフの基本

    ggplot2パッケージをインストールする

    まずはggplot2のパッケージをインストールします。インストールは以下のコードを使って行うことができます。

    install.packages("ggplot2")

    続いて、このパッケージをプロジェクトの中で使えるように読み込みをします。

    library(ggplot2)

    これで準備が完了しました!

    折れ線グラフのx軸とy軸のデータを指定する

    例として、以下の表のようなデータがあるとします。

    time(時間)velocity(速度)
    120
    270
    350
    410
    560
    630
    780
    840

    X軸に時間、Y軸に速度をとるとすると、xとyはそれぞれ下のコードを使って定義することができます。

    time = c(1, 2, 3, 4, 5, 6, 7, 8)
    velocity = c(20, 70, 50, 10, 60, 30, 80, 40)

    ちなみに、エクセルやcsvなどのファイルになっている表から読み込むのであれば、表のデータをdata1とすると以下のように指定することができますね。

    time = data1$time
    velocity = data1$velocity

    続いて、このxとyのデータを使ってデータフレームを作ります。ちなみにRで「=」と「<ー」は同じ意味合いですので悪しからず。

    df <- data.frame(time, velocity)

    折れ線グラフを作る

    最後に、ggplot()の関数を使って、折れ線グラフを作ります。もっとも単純なものだと、以下のコードのようになるかと思います。

    ggplot(data=df, aes(x=time, y=velocity, group=1)) + geom_line(color = "black")

    下の図のような折れ線グラフが出来上がりました!

    括弧の中のdataの部分は、折れ線グラフを作るデータフレームを指定するものです。この例でのデータフレームはdfとしていたので、data=dfを入れてあります。

    一つの図に表示する折れ線グラフの数が1つの場合は、aes()の中のgroupeの部分は、group=1にしておけば大丈夫です。

    geom_line(color = “black”)は、折れ線グラフの色を指定している部分です。この例では黒にしてありますが、blueやredなど好きな色にすることができます。括弧に何も入れないと、自動的に黒になります。

    背景を変える

    上記の図では、背景がグレーになっていますが、背景を消してしまいたい時は、別のテーマを使うこともできます。例えばクラシックというテーマにすると、背景のグレーが白になってシンプルなデザインにすることができます。

    ggplot(data = df, aes(x=time, y=velocity, group=1)) + geom_line(color = "dark grey") + theme_classic()

    図はこんな↓感じになります。

    さらに、X軸Y軸それぞれのラベルの表記を変えたい時は、以下のコードを使うことができます。以下の例では、TimeとVelocityの始まりのアルファベットを大文字に変えてあります。

    ggplot(data = df, aes(x=time, y=velocity, group=1)) + geom_line(color = "dark grey") + theme_classic() + xlab("Time") + ylab("Velocity")

    データポイントに丸印をつける

    また、折れ線グラフの各データポイントに丸をつけたい場合は、以下のコードを使うことができます。

    ggplot(data = df, aes(x=time, y=velocity, group=1)) + geom_line(color = "dark grey") + theme_classic() + xlab("Time") + ylab("Velocity") + geom_point()

    他にも色々とデザインを変える関数がありますが、ここでは書ききれないので、以下のリンクよりggplot2の公式ページをご確認ください。基本的にはデータフレームの取り方さえマスターすれば、デザインは全て「+」を使って繋いでいくだけです。

    https://ggplot2.tidyverse.org/reference/

    Rで複数の折れ線グラフを作成する

    ちょっと面倒なのが、複数の折れ線グラフを1つの図に表示させたい時です。例えば、以下のようなデータについて考えてみましょう。先ほどと違うのは、typeという項目が加わっていることです。この種類ごとにRで折れ線グラフを作る場合は、ggplot()関数の括弧の中の書き方を工夫する必要があります。

    type(種類)time(時間)velocity(速度)
    A120
    A270
    A350
    A410
    B160
    B230
    B480
    B440

    データフレームを準備する

    データフレームは、以下のように用意します。少しややこしいですが、typeにAとBの2種類があり、それぞれ4つのデータポイントがあること、 timeには1−4があり2種類それぞれにデータポイントがあること、それから速度の値8つ、ということになります。

    df <- data.frame(type=rep(c("A", "B"), each=4), time=rep(c("1", "2", "3", "4"), 2), velocity=c(20, 70, 50, 10, 60, 30, 80, 40))

    折れ線グラフを作る

    それから、先ほどと同様にggplot()の関数を使って折れ線グラフを作ります。以下の例ではわかりやすいように、各データポイントに丸を入れたデザインにしています。

    ggplot(data=df, aes(x=time, y=velocity, group=type)) + geom_line() + geom_point()

    2つの折れ線グラフの色を変えたい場合は、以下のようなコードを使うと色分けすることができます。

    ggplot(data=df, aes(x=time, y=velocity, group=type)) + geom_line(aes(color=type)) + geom_point(aes(color=type))

    英語のサイトですが、以下のリンクにも色々なデザインが載っているので参考にしてみてくださいね。

    http://www.sthda.com/english/wiki/ggplot2-line-plot-quick-start-guide-r-software-and-data-visualization

    まとめ

    いかがでしたでしょうか?箱ひげ図や棒グラフに比べると、ちょっとデータフレームの作り方が面倒ですが、ggplot2パッケージを利用して、Rで綺麗な折れ線グラフを作ってみてくださいね!