【R言語の基礎#4】データの可視化(ggplot2)

記事の目的

R言語でのデータの可視化方法について解説します。ライブラリを使用しなくても図はかけます。しかし、ggplot2を使用することで綺麗で自由な可視化ができるので、その概要について解説します!

 

目次

  1. 使用ライブラリとデータの作成
  2. データの可視化
  3. データを綺麗にプロット
  4. データをグループごとにプロット
  5. データフレームでない場合のプロット

 

1 使用ライブラリとデータの作成

1.1 使用ライブラリ

install.packages("dplyr") # 一度もインストールしていない場合
install.packages("ggplot2") # 一度もインストールしていない場合
library(dplyr)
library(ggplot2)

 

1.2 データの作成

set.seed(1)
数学 <- round(rnorm(100, 50, 10)) # 数学~N(50,10)
英語 <- round(rnorm(100, 50, 10)) # 英語~N(50,10)
クラス <- rbinom(100, 1, 0.5) # クラス~B(1,0.5), クラス~Be(0.5)
data <- data.frame(数学, 英語, クラス) # データフレーム作成
head(data) # データ確認

 

2 データの可視化

2.1 ヒストグラム

data %>%
  ggplot(aes(数学)) + # 軸を指定
  geom_histogram() # ヒストグラム

 

2.2 散布図

data %>% 
  ggplot(aes(数学, 英語)) + # 軸を決定
  geom_point() # 散布図

 

3 データを綺麗にプロット

data %>%
  ggplot(aes(数学, 英語)) + # 軸を指定
  geom_point() + # 散布図
  theme_classic(base_family = "HiraKakuPro-W3") + # テーマと文字化け修正(macの場合)
  #theme_bw(base_family = "HiraKakuPro-W3") + # 別のテーマ例
  theme(text=element_text(size=30)) + # テキストサイズ
  lims(x=c(0,100), y=c(0,100)) + # 軸の範囲
  #xlim(0,100) + # 軸の範囲は個別でも指定できるが1行上の方が楽
  #xlab("数学の点数")+ # 軸の名前も個別で指定できるが1行下の方が楽
  labs(x="数学の点数", y="英語の点数", title="テストの点数") # タイトルと軸

 

4 データをグループごとにプロット

4.1 同一のグラフ上にプロット

data %>%
  mutate(クラス=as.character(クラス)) %>% # クラスを数値から文字に変更
  ggplot(aes(数学, 英語, col=クラス)) + # 軸とグループを指定
  geom_point() + # 散布図
  theme_classic(base_family = "HiraKakuPro-W3") + # テーマと文字化け修正(macの場合)
  theme(text=element_text(size=30)) + # テキストサイズ
  lims(x=c(0,100), y=c(0,100)) + # 軸の範囲
  labs(x="数学の点数", y="英語の点数", title="テストの点数") # タイトルと軸

 

4.2 別のグラフ上にプロット

data %>%
  ggplot(aes(数学, 英語)) + # 軸を指定
  geom_point() + # 散布図
  theme_classic(base_family = "HiraKakuPro-W3") + # テーマと文字化け修正(macの場合)
  theme(text=element_text(size=30)) + # テキストサイズ
  lims(x=c(0,100), y=c(0,100)) + # 軸の範囲
  labs(x="数学の点数", y="英語の点数", title="テストの点数") + # タイトルと軸
  #facet_grid(~クラス) + # 対象のグループ指定
  facet_wrap(~クラス) # 対象のグループ指定

 

5 データフレームでない場合のプロット

ggplot() + 
  geom_point(aes(数学, 英語), col="blue", size=3) + # 軸と色(col)とサイズ(size)指定
  geom_histogram(aes(数学), binwidth = 30, fill="blue", alpha=0.3) # 横幅(binwidth)と色(fill)と薄さ(alpha)指定