Rで解析:手軽で綺麗なグラフが欲しいなら、ggplot2のまとめです。


投稿日: Rの解析に役に立つ記事

ggplot2パッケージは図を作成するのに非常に強力なパッケージです。備忘録を兼ねて使い方・コマンドを一覧でまとめました。4ページのボリュームです。3-4ページ目はプロットコマンド、図の体裁を整えるコマンド一覧となっています。

なお、バージョンは2.0.0です。バージョン0.9.1前は若干コマンドの使用方法が異なりますので注意してください。

内容はggplot2オフィシャルページを参考にしています。
http://ggplot2.org/

また、紹介で使用しているデータはggplot2に付属しているdiamondsです。
diamondsデータ


ggplot2の概要

ggplot2の特徴として、データを「読み込むコマンド」、データから「図をプロットするコマンド」、図を「装飾するコマンド」が明確に分かれているところが挙げられます。
慣れるまでは大変かもしれませんが、コマンドの修正箇所が明確ですので作業コストが低く、合理的なパッケージかと思います。具体的には「ggplot」コマンドでデータを読み込んでオブジェクトを作成後、プロット、装飾の流れとなります。


ggplot2のインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("ggplot2")

ggplot2ライブラリの読み込み

ggplot2ライブラリを使用するときは、下記コマンドを実行してください。

library("ggplot2")

データを「読み込むコマンド」

ggplot2でデータを読み込む方法は、読み込みから表現方法までまとめて指定する「qplot」とデータ読み込み専門の「ggplot」のコマンドがあります。

「qplot」は予備的に使用することがありますが、ggplot2の特徴である”データを「読み込むコマンド」、データから「図をプロットするコマンド」、図を「装飾するコマンド」”を最大限に利用するために「ggplot」コマンドの利用をお勧めします。

なお、データの読み込み時やプロットコマンド内でaesコマンドを使用して、x軸やy軸、グループ、シンボルの色などを指定しなくてはなりません。プロットする図に合わせたx軸やy軸の指定が必要です。

#データの読み込み
PlotData <- ggplot(diamonds)

グラフ要素の指定「aesのオプション」一覧

aesコマンドのオプションの一覧です。オプションは複数設定が可能です。

表現内容オプション
軸データを指定x, y, zaes(x = 1, y = 2)
塗りつぶしの色fillaes(fill = "red")
線の色、囲み線の色colouraes(colour = "red")
色の透過度alphaaes(alpha = 0.5)
シンボルの形shapeaes(shape = 3)
シンボルのサイズsizeaes(size = 4)
線の種類linetypeaes(linetype = 1)
グループの指定groupaes(group = "読み込んだデータの列 or 行名")
並び替えorderaes(order = "読み込んだデータの列 or 行名")
x or yの最小値xmin or yminaes(xmin = 1)
x or yの最大値xmax or ymaxaes(xmax = 1)
矢印の記入xend, yend, arrowgeom_segment(aes(x = 4, y = 25, xend = 3.5, yend = 20), arrow = arrow(length = unit(0.5, "cm")))


読み込んだデータのプロット例

読み込んだデータを散布図でプロットするためにgeom_pointコマンドからaesで要素を指定しています。詳細はコマンド内コメントを確認してください。

PlotData +
geom_point(aes(x = carat, y = price, color = color))

#データの読み込み時にaesで要素を指定しても同じ図がプロットできます。
#データの読み込みと要素の指定
PlotData <- ggplot(diamonds, aes(x = carat, y = price, color = color))
PlotData +
geom_point()

#データの読み込みは、列番号でも可能です。ただし、軸ラベルなどが&quot;データ名[,列名]&quot;になるので修正が必要です。
#データの読み込みと列番号で要素を指定
PlotData <- ggplot(diamonds, aes(x = diamonds[, 1], y = diamonds[, 7], color = diamonds[, 3]))
PlotData +
geom_point()

#図を装飾するために、引数にオブジェクトを格納した場合にはprintコマンドでプロットできます。
PointPlot <- PlotData +
             geom_point(aes(x = carat, y = price, color = color))
print(PointPlot)

プロットされる散布図です。
point

なお、ファイルに保存する場合にはggsaveコマンドを使用します。保存はワーキングディレクトリに保存されます。

ggsave("Test.png", PointPlot)

参考:分割プロット「facetコマンド」の紹介

ggplot2にはデータを分割しプロットするfacetコマンドがあります。指定した行・列数にグラフを配置するfacet_wrapコマンドと右または上からグラフを配置するfacet_wrapコマンドがあります。なんとなくfacet_wrapの使用頻度が高いので紹介します。

右からグラフを配置する方法。facet_grid(.~”分割したい行名または行番号”)

#facet_gridで右から順に配置
PlotData +
geom_point(aes(x = carat, y = price, color = color)) +
facet_grid(.~color)

出力図
facet右

上からグラフを配置する方法。facet_grid(“分割したい列名または列番号”~.)

#facet_gridで上から順に配置
PlotData +
geom_point(aes(x = carat, y = price, color = color)) +
facet_grid(color~.)

出力図
facet上から順

次ページ、図の軸やシンボルなどを変更するコマンドの紹介です。

スポンサードリンク

> 続きを読む 

おすすめコンテンツ


スポンサードリンク