[Rによるデータ分析入門]ggplotによる図の作成(1)
本コラムはRによるデータ分析入門のWEBサポートとして作成されています。
本コラムではRのグラフ描画パッケージgglot2の使い方を紹介します。Rではtidyverseパッケージに含まれるggplot2パッケージを使うことで綺麗なグラフを描くことができます。第1回は、散布図の作成方法を紹介しながら基本的な使い方について説明します。
2023/11/07改訂
なお、第2回は、折れ線グラフの作成方法を紹介します。
基本的な使い方
ggplot2パッケージの関数はggplotで基本的な使い方は以下の通りです。
グラフ・オブジェクト <- ggplot(データフレーム, x=X軸の変数, y=Y軸の変数))+geom_XXX()
グラフ・オブジェクト
geom_XXX()でグラフの種類を設定します。
散布図 geom_point()
折れ線グラフ geom_line()
ヒストグラム geom_histogram()
箱ひげ図 geom_boxplot()
棒グラフ geom_bar()
さらにこのgeom_XXX()の後ろに「+」でオプションを付けていきます。
グラフを表示させるには、グラフ・オブジェクトを実行すると、Plotsペインにグラフが表示されます。
散布図の作成
散布図の場合、グラフの種類のオプションとしてgeom_point()を指定します。また、aes(x=横軸の変数, y=縦軸の変数)で縦軸・横軸の変数を指定します。
ggplot(data=データフレーム名, aes(x=横軸の変数, y=縦軸の変数))+geom_point()
ここではG20諸国の女性労働力率(Female Labor Participation Ratio, FLP)と合計特殊出生率(Total Fertility Rate)に関するデータが収録されているFLP-Fertility-G20.Rを使用します。なお、G20は「20か国・地域の国・地域の首脳会合」の参加国・地域のことで、19か国と欧州連合が参加しています。今回用いるデータには19か国のデータが含まれています。
今回使用するスクリプトは以下からダウンロードできます。
さっそくスクリプト例をみていきましょう。以下では、読み込んだデータをdatafというデータフレームとし、ここに含まれるFLP(女性労働力率)を横軸にFertility(合計特殊出生率)を縦軸した散布図を作成しています。
library(tidyverse)
# データの読み込み
dataf <-
readr::read_csv("FLP-Fertility-G20.csv")
#######################
#散布図の作成
#######################
g_point1 <-ggplot(data=dataf, aes(x=FLP, y=Fertility))+
geom_point()
g_point1
これを実行すると以下のようなグラフが出力されます。
背景を白にしたいときは“+theme_classic()"というオプションを付けます。
#背景を白にする
g_point2 <-ggplot(data=dataf, aes(x=FLP, y=Fertility))+
geom_point() + theme_classic()
g_point2
タイトルをつける、軸ラベルを変更する
labs()オプションでタイトルをつけたり、軸ラベルを変更できます。
+labs(title="グラフのタイトル", x="X軸のラベル", y="Y軸のラベル")
以下のコードで、タイトルをFertility rate and Female Labor Participationに、X軸とY軸のラベルを"Female Labor Participation"、"Fertility rate"に変更しています。
#タイトルをつける、軸ラベルを変更する
g_point3 <-ggplot(data=dataf, aes(x=FLP, y=Fertility))+
geom_point() + theme_classic()+
labs(title="Fertility rate and Female Labor Participation",x="Female Labor Participation",y="Fertility rate")
g_point3
labs()内でタイトルや軸ラベルを日本語にすることもできます。
g_point4 <-ggplot(data=dataf, aes(x=FLP, y=Fertility))+
geom_point() + theme_classic()+
labs(title="女性就業率と出生率",x="女性就業率",y="出生率")
g_point4
ラベルをつける
G20には日本が含まれていますが、この図ではどれが日本か判別できません。このデータにはCountryという変数が含まれており、ここに3桁の国名の略称が入っています。この国名の略称をラベルとしてデータの隣に表示させてみましょう。ラベルをつけるには、ggrepelパッケージを使います。パッケージをインストールして、スクリプトにはlibrary(ggrepel)でパッケージを呼び出しておきます。そして、ラベルの変数を指定するには、aes(x=横軸の変数, y=縦軸の変数, label=ラベルの変数)と書きます。
※3桁の国コードは国際標準化機構(ISO)が定める世界共通の略称です。一覧表は例えば以下のサイトで参照できます。
# ラベルをつける ggrepelパッケージのインストールが必要
library(ggrepel)
g_point3 <-ggplot(data=dataf, aes(x=FLP, y=Fertility,label=Country))+
geom_point()+geom_text_repel()+theme_classic()
g_point3
赤線を引いたところが日本(略称はJPN)で、G20諸国の中でも女性労働力率と合計特殊出生率が低いことが分かります。
第2回以降では折れ線グラフの作成方法を紹介します。
なお本コラムは2024年4月ごろ発売予定の「Rによるデータ分析入門」(仮)のWEBサポートページとして作成されました。WEBサポートの一覧は以下を参照してください。
この記事が気に入ったらサポートをしてみませんか?