R言語のggplot2でヒストグラムを描くには?

 Rのggplot2でヒストグラムを描きます。

要約

 Rでこんなグラフが描けます。

パッケージの準備

 ggplot2はRにもともと入っている機能ではありません。インストールして、呼び出しする必要があります。

install.packages("ggplot2") #インストール(初回のみ)
library(ggplot2) #読み出し(RStudio起動のたびに)

ヒストグラム

(1)データの生成

 分析するデータをランダムに生成します。

#乱数生成
X1 <- rnorm(n=1000, mean =10, sd=1) #母平均10、母標準偏差1のデータを1000個生成し、X1と名づける
 
#データフレーム作成
data0 <- data.frame(X1) #データフレーム作成

(2)基本形

 ヒストグラムを作成します。例えば、下図が生成できます。↓

 Rのコードは下↓

ggplot(data0, aes(x = X1)) + #白紙のキャンパスを作成
  geom_histogram() #ヒストグラム作成

色と階級数

 ヒストグラムに色をつけて、階級数も指定します。

ggplot(data0, aes(x = X1)) +
  geom_histogram(colour="white", fill = "skyblue2",bins=50) #枠線色が白white、塗りつぶし色が水色skyblue2、階級数50
#おすすめの色
black #黒
white #白
grey #灰色
skyblue2 #青
palegreen3 #緑
pink1 #ピンク
 
#透明度
alpha=? #←0から1

綺麗なヒストグラム

 実践的な綺麗なヒストグラムを作ります。

 

##解説あり
#キャンバス作り
ggplot(data0, aes(x = X1)) +  
 
#横線を入れる。20から100まで、20ごと。色は灰色。
  geom_hline(yintercept = seq(20, 100, 20), col = "grey")+
 
#ヒストグラムを出力
  geom_histogram(colour="white", fill = "skyblue2",bins=50)+
 
#0に黒の横線を入れる
  geom_hline(yintercept = 0, col = "black")+
 
#横軸を6から14に設定。2ごとに目盛りつける
  scale_x_continuous(limits = c(6, 14),breaks = seq(6,14,2))+
 
#縦軸を0から100に設定。20ごとに目盛をつける
  scale_y_continuous(limits = c(0, 100),breaks = seq(0,100,20))+
 
#横軸と縦軸にラベルをいれ、タイトルをつける
  xlab("生成した乱数") + 
  ylab ("度数") +
  ggtitle ("乱数のヒストグラム") +
 
#日本語のバグを消す
  theme_minimal(base_family = "HiraKakuPro-W3")
##解説なし

ggplot(data0, aes(x = X1)) +  
  geom_hline(yintercept = seq(20, 100, 20), col = "grey")+
  geom_histogram(colour="white", fill = "skyblue2",bins=50)+
  geom_hline(yintercept = 0, col = "black")+
  scale_x_continuous(limits = c(6, 14),breaks = seq(6,14,2))+
  scale_y_continuous(limits = c(0, 100),breaks = seq(0,100,20))+
  xlab("生成した乱数") + 
  ylab ("度数") +
  ggtitle ("乱数のヒストグラム") +
  theme_minimal(base_family = "HiraKakuPro-W3")

複数のヒストグラムを重ね合わせ

(1)データの生成

X2 <- rnorm(n=1000, mean =10, sd=1) #母平均10、母標準偏差1のデータを1000個生成し、X1と名づける
X3 <- rnorm(n=1000, mean =11, sd=0.8) #母平均10、母標準偏差1のデータを1000個生成し、X1と名づける
 
#データフレーム作成
data0 <- data.frame(X2,X3) 

(2)基本

ggplot(data0) +  
  geom_histogram(aes(x = X2),colour="white", fill = "skyblue3",alpha=0.7,bins=50)+
  geom_histogram(aes(x = X3),colour="white", fill = "pink2",alpha=0.7,bins=50)

(3)綺麗な重ね合わせ

ggplot(data0) +  
  geom_hline(yintercept = seq(20, 100, 20), col = "grey")+
  geom_histogram(aes(x = X2),colour="white", fill = "skyblue3",alpha=0.7,bins=50)+
  geom_histogram(aes(x = X3),colour="white", fill = "pink2",alpha=0.7,bins=50)+
  geom_hline(yintercept = 0, col = "black")+
  scale_x_continuous(limits = c(6, 14),breaks = seq(6,14,2))+
  scale_y_continuous(limits = c(0, 100),breaks = seq(0,100,20))+
  xlab("生成した乱数") + 
  ylab ("度数") +
  ggtitle ("乱数のヒストグラム") +
  theme_minimal(base_family = "HiraKakuPro-W3")

補足:色について

#おすすめの色
black #黒
white #白
grey #灰色
skyblue2 #青
palegreen3 #緑
pink1 #ピンク
 
#透明度
alpha=? #←0から1

コメント欄 お気軽にコメントをお寄せください!

タイトルとURLをコピーしました