この記事は、次のような悩みを持つ方向けです。
「Rでグラフを描きたいけど、どうすればいいかわからない…」
「Rで描いたグラフの色を変えたり、文字を入力したいけど方法がわからない…」
この記事では、Rをより使いやすくするソフトウェア「RStudio」を使って、統計解析でよく扱う基本的なグラフを描いたり、簡単なカスタマイズをできるようになることを目標に解説します。
「RとRstudioとEZRは何が違うの?」
RとEZRの違いは何?臨床研究のデータ解析におけるRのススメ
「Rstudioって何?どうすれば使えるようになるの?」
R studioのインストール・ダウンロードから初期設定まで(Mac対応)
「R studioの基本的な使い方を教えて!」
R studioの基本的な使い方を初心者向けに徹底解説!
Rによるグラフ描画の基礎知識
Rでグラフを綺麗に作成するためには、
- 基本的なグラフの種類とその描き方
- タイトルや軸のカスタマイズ方法
- 色やグラフの形を変更する方法、
- グラフにテキストを挿入する方法
などの要素を押さえておくことが重要です。
基本的なグラフの種類とその描き方
Rには特別なパッケージを使わなくても、様々なグラフを作成する機能が備わっています。
例えば、ヒストグラム、散布図、折れ線グラフ、箱ひげ図などがあり、それぞれデータを視覚化する際に役立ちます。
グラフの種類 | 関数 | 用途 |
---|---|---|
ヒストグラム | hist() | データの分布を視覚化 |
散布図 | plot() | 変数間の関係を表示 |
箱ひげ図 | boxplot() | (特に複数の)データのばらつきを視覚化 |
折れ線グラフ | plot() | 時間経過による変化などを表示 |
シンプルなグラフを作成するためには、上記のような基本的な描画関数だけ押さえておけば十分です。
これらの描画関数を使いこなすことで、データの傾向やパターンを素早く把握することができます。
基本的なグラフを描いてみよう
Rに初めから付属している有名なサンプルデータであるirisやAirpassengersを使って、それぞれのグラフの描画を試してみましょう。
Rに含まれるサンプルデータセットのirisは、植物学で非常に有名なデータセットです。
このデータセットは、アイリス(iris)という花の3つの異なる種(setosa、versicolor、virginica)の50個体ずつ、合計150個体のデータを含んでいます。
irisデータセットには、以下の5つの変数があります:
- Sepal.Length(がく片の長さ):アイリスのがく片の長さをセンチメートルで測定したもの。
- Sepal.Width(がく片の幅):がく片の幅をセンチメートルで測定したもの。
- Petal.Length(花びらの長さ):花びらの長さをセンチメートルで測定したもの。
- Petal.Width(花びらの幅):花びらの幅をセンチメートルで測定したもの。
- Species(種類):アイリスの種類(setosa、versicolor、virginicaのいずれか)。
このデータセットは、統計学やデータ分析の初学者にとって、データの可視化や機械学習モデルのトレーニングなど、さまざまな分析技術を学ぶための基本的な例として広く使用されています。
同様に、UKLungDeathsデータセットは時間的なトレンドを分析するための代表的なサンプルデータです。
このUKLungDeathsデータセットは、1974年から1979年までのイギリスにおける肺疾患による死亡数を時間経過とともに記録したものです。
ヒストグラム
###irisデータをRから取り出す###
data(iris)
###irisデータのがく片の幅(2列目のデータ)のヒストグラムを描く###
hist(iris[,2])
###irisデータの列名を確認
colnames(iris)
###列名で指定して、全く同じヒストグラムを描く###
hist(iris[,"Sepal.Width"])
次のようにヒストグラムが出力されれば成功です(列番号で指定しても、列ラベル名で指定しても同じヒストグラムになります)。
散布図
###横並びに2枚の散布図を描くための準備###
par(mfcol=c(1,2))
###irisデータのがく片の長さと幅の関係性を散布図で確認する###
plot(iris[,1:2])
###irisデータの花びらの長さと幅の関係性を散布図で確認する###
plot(iris[,3:4])
###必要に応じて初期設定に戻しておく###
par(mfcol=c(1,1))
次のように2枚の散布図が出力されれば成功です。どちらの組み合わせの方が関係性がはっきりしていそうでしょうか?
箱ひげ図
###irisデータの1列目から4列目に格納されているがく片や花びらの長さ・幅を箱ひげ図で描画###
boxplot(iris[,1:4])
###列名で指定して同じ箱ひげ図を描く###
labels = c("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width")
boxplot(iris[,labels])
次のように箱ひげ図が出力されれば成功です。
折れ線グラフ
###データをRから取り出す###
data(UKLungDeaths)
###データのヘルプ画面を確認して、どのようなデータが含まれているか確認する###
help(UKLungDeaths)
###肺疾患による死亡数の推移を折れ線グラフで描画する###
plot(ldeaths, type="l")
次のように折れ線グラフが出力されれば成功です。こうやって折れ線グラフにしてみると、時系列的なトレンドがわかりやすくなりますね。
(注) ldeathsというデータは時系列データとして保存されているのでtype=”l”とオプションを指定しなくても、自動的に折れ線グラフが出力されます。
一般的なベクトル形式のデータや行列形式のデータの場合には、typeオプションを指定しないと散布図の形式になってしまうので、注意が必要です。
また、後から見返した時に何を描こうとしていたかわかるように、あえて明示的に記載しておく方がベターです。
Rで描画したグラフのカスタマイズ
タイトルの追加と軸のラベル変更
Rのグラフはカスタマイズが可能で、タイトルの追加や軸のラベル変更などが簡単にできます。
例えば、xlabやylabのオプションを使用して軸のラベルを設定したり、mainオプションでグラフのタイトルを追加することができます。
グラフの内容に合ったタイトルや軸ラベルを指定することで、グラフはより情報を伝えやすく、見やすいものになります。
plot(iris[,c("Petal.Length", "Petal.Width")],
xlab="Length of Petal", ylab="Width of Petal",
main="Scatter Plot of Petal's length and width")
色やグラフの形を変更する方法
Rでは、グラフの色や形を変更して、より魅力的で理解しやすい図を作成することができます。
例えば、colパラメータを使ってプロットの色を変更したり、pch パラメータでプロットの形を変えることが可能です。
plot(iris[,c("Petal.Length", "Petal.Width")],
xlab="Length of Petal", ylab="Width of Petal",
main="Scatter Plot of Petal's length and width",
col=iris[,"Species"],pch=3)
グラフにテキストやマークを加える方法
グラフの中にテキストやマークによる説明をつけることで、グラフの読み手がグラフの意味を容易に理解できるようになります。
例えばtext関数で特定の座標にテキストを追加したり、arrows関数で矢印によるマーキングをしたりすることが可能です。
###先に散布図をplotする###
plot(iris[,c("Petal.Length", "Petal.Width")],
xlab="Length of Petal", ylab="Width of Petal",
main="Scatter Plot of Petal's length and width",
col=iris[,"Species"],pch=3)
###plotに合わせて、(x,y)座標の(3,2)地点から(4,1.5)地点まで矢印を引く###
arrows(3,2,4,1.5)
###矢印の上にテキストを赤字で挿入する。ここではirisの種類を明記###
text(3,2.1,"versicolor",col="red")
まとめ
グラフ描画は、データの特性や関係性を視覚的に理解するのに非常に有効です。
集積したデータを分析する前にデータの関係性を確認することで、適切なデータ分析が可能になります。また、研究仮説を検討する上でも非常に重要なステップです。
本記事では、Rstudioによる基本的なグラフの種類とその描き方から、グラフのカスタマイズ方法、色や形の変更方法、テキストやマークの追加方法について解説しました。
グラフの描画関数にはたくさんのオプションがあり、一度に全てを覚えるのはたいへんです。まずは本記事でご紹介した基本的なカスタマイズ方法から習得していきましょう。
コメント