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
コメント欄 お気軽にコメントをお寄せください!