Rのggplot2で散布図を描きます。
要約
Rでこんな散布図が描けます。

パッケージの準備
ggplot2はRにもともと入っている機能ではありません。インストールして、呼び出しする必要があります。
install.packages("ggplot2") #インストール(初回のみ)
library(ggplot2) #読み出し(RStudio起動のたびに)
散布図
(1)練習用データ
練習用のデータをランダムに生成します。
X <- rnorm(n=100, mean =3, sd=1) #100個の正規分布に従う変数作成
u <- rnorm(n=100, mean =0, sd=3) #100個の正規分布に従う変数作成
d <- c(rep(0,50),rep(1,50)) #0を50個、1を50個生成
category <- c(rep("type_A",50),rep("type_B",50)) #type_Aを50個、type_Bを50個生成
Y <- 6+d*3+ 0.5*X+ 2*d*X+ u #YをX,d,uを用いて生成
data0 <- data.frame(X,Y,d,category) #データフレーム化
(2)基本形
散布図は次のコードで出力できます。
ggplot(data0, aes(x = X,y=Y)) + #データdata0を使用。縦軸にX、横軸にY
geom_point() #点のプロット
その結果が下図です。

(3)回帰直線
散布図に回帰直線を引きたいときは、つぎのコードです。
ggplot(data0, aes(x = X,y=Y)) +
geom_point()+
stat_smooth(method = "lm",se=F) #回帰直線、se=Fは95%信頼区間を非表示という意味。Tにすると、表示される。
その結果が下です。

色分け
カテゴリごとに色分けしたい場合があるでしょう。
ggplot(data0, aes(x = X,y=Y)) +
geom_point(aes(colour=category))
その結果が下図です。

綺麗な散布図
綺麗な散布図を出力します。コードは、解説つきと解説なしを載せましょう。
ggplot(data0, aes(x = X,y=Y)) + #白紙のキャンパスを作成
geom_point( aes(colour=category))+ #色分け
scale_x_continuous(limits = c(0, 6),breaks = seq(0,6,1))+ #横軸を0から6に指定。目盛りは0から6まで、1ずつ。
scale_y_continuous(limits = c(0, 30),breaks = seq(0,30,5))+ #横軸を0から30に指定。目盛りは0から30まで、5ずつ。
stat_smooth(method = "lm", formula='y~x',se = T, aes(color=category), size = 1)+ #回帰直線を引く。95%信頼区間を表示
xlab("説明変数") + #横軸ラベル
ylab("目的変数") + #縦軸ラベル
ggtitle ("散布図") + #タイトルラベル
theme_minimal(base_family = "HiraKakuPro-W3") #日本語指定
ggplot(data0, aes(x = X,y=Y)) +
geom_point( aes(colour=category))+
scale_x_continuous(limits = c(0, 6),breaks = seq(0,6,1))+
scale_y_continuous(limits = c(0, 30),breaks = seq(0,30,5))+
stat_smooth(method = "lm", formula='y~x',aes(color=category), size = 1)+
xlab("説明変数") +
ylab("目的変数") +
ggtitle ("散布図") +
theme_minimal(base_family = "HiraKakuPro-W3")
その結果が下図です。

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