読者です 読者をやめる 読者になる 読者になる

Rのggplot2を使って棒グラフを作成する

 

今回はRのパッケージggplot2を使って色々なグラフを作成してみたいと思います。

 

ggplot2とは

Rには様々なデータを可視化する方法がありますが、その中でもggplot2は比較的簡単に綺麗なグラフを作成することができます。

 

ggplot2は入力すべき情報とオプションが統一されているため、あるグラフで使い方を覚えてしまえば、他の種類のグラフを作成する際にも同じ使い方でグラフを作成することができます。

 

また、他のパッケージと比べて関数の種類ごとに使い方やオプションを覚える必要がないので、学習効率が良いと思います。

 

それでは早速ggplot2をインストールしてみましょう。

Rのコンソールから以下のようにコマンドを実行すればOKです。

同時にサンプルデータを取得するために「gcookbook」もインストールしておきましょう。

>install.packages("ggplot2")
>install.packages("gcookbook")
>library(ggplot2)
>library(gcookbook)

 棒グラフを作成してみる

それではまずは棒グラフから作成してみましょう。

 今回使うデータを見てみましょう。今回はgcookbookの中にあるpg_meanというデータを使います。

棒グラフを作成するときはgeom_bar()をたしてやることでできます。

もし折れ線グラフを作成したい場合はgeom_lineと記述することで作成することができます。

 

>pg_mean
group weight
1 ctrl 5.032
2 trt1 4.661
3 trt2 5.526
>ggplot(pg_mean, aes(x = group, y = weight)) + geom_bar(stat = "identity")

 

f:id:yunosuke1107:20160908225429p:plain

 

色をつける 

先ほどの棒グラフに色をつけてみましょう。geom_barの中にfillとcolourを指定するだけで色をつけることができます。

 

>ggplot(pg_mean, aes(x = group, y = weight)) +
geom_bar(stat = "identity", fill = "lightblue", colour = "black")

 

f:id:yunosuke1107:20160908230253p:plain

 

グループ化する

 

次は棒グラフをグループ化してみましょう。グループ化する方法はfillに変数を与えて、geom_bar("position="dodge")を用います。

 

次に使うデータセットは2つのカテゴリがあります。カテゴリごとにグループ化し、棒グラフを作成してみましょう。

 

> cabbage_exp
Cultivar Date Weight sd n se
1 c39 d16 3.18 0.9566144 10 0.30250803
2 c39 d20 2.80 0.2788867 10 0.08819171
3 c39 d21 2.74 0.9834181 10 0.31098410
4 c52 d16 2.26 0.4452215 10 0.14079141
5 c52 d20 3.11 0.7908505 10 0.25008887
6 c52 d21 1.47 0.2110819 10 0.06674995
>ggplot(cabbage_exp, aes(x = Date, y = Weight, fill = Cultivar)) +
  geom_bar(stat = "identity", position = "dodge")

 

f:id:yunosuke1107:20160908231519p:plain

 

ドットプロット

 

最後はドットプロットを作成してみたいと思います。

ドットプロットの場合は一番簡単な方法として、geom_point()と記述することで作成することができます。

 

> tophit <- tophitters2001[1:25,]
> tophit
> ggplot(tophit, aes(x = avg, y = name)) + geom_point()

 

f:id:yunosuke1107:20160908233022p:plain

 

これでも良いのですがせっかくなのでドットのサイズや体裁を整えてみましょう。

>ggplot(tophit, aes(x = avg, y = reorder(name, avg))) +
geom_point(size = 3) + #ドットのサイズを変更
theme_bw() + #背景色をなくす
theme(axis.text.x = element_text(angle = 60, hjust = 1),
panel.grid.major.y = element_blank(),
panel.grid.minor.y = element_blank(),
panel.grid.major.x = element_line(colour = "grey60", linetype = "dashed"))

 

f:id:yunosuke1107:20160908234605p:plain

 

avgでソートしたのでさっきのグラフよりは見やすくなりました!

 

このようにggplot2は綺麗なグラフが簡単に書けるのでオススメです。最初はわからないことばかりでつまずくかもしれませんが、Rを使っていくのであればggplotを使いこなせるようになった方が良いと思います。

 

次回は折れ線グラフなどを紹介したいと思います。

 

広告を非表示にする