R言語のggplot2で折れ線グラフを描くには?

 Rのggplot2を用いて、折れ線グラフを描きます。

要約

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

パッケージの準備

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

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

折れ線グラフを描く

練習用データの生成

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

#西暦を生成 2010から2030まで1年ごと
year  <- seq(2010,2030,1)
 
#誤差項を生成 サンプルサイズ21、母平均0、標準偏差5
random <- rnorm(n=21, mean =0, sd=5) 
 
#Yを生成
Y <- year + random - 2000 
 
#データフレームを作成
data0 <- data.frame(year, Y)

基本形

 折れ線グラフを生成します。

ggplot(data0, aes(x = year, y = Y))+
  geom_line()

点線や破線

ggplot(data0, aes(x = year, y = Y))+
  geom_line(linetype="dashed") #破線
#線の種類
solid #実線
dashed #破線
dotted #点線
dotdash #点線と破線の組み合わせ

綺麗な折れ線グラフ

 冒頭に登場したグラフの描き方です。

##解説あり
#data0のデータを用いて、横軸にyear、縦軸にY
ggplot(data0, aes(x = year, y = Y))+
 
#縦線を入れる。2010から2030まで、1ごとに。色は灰色、太さは0.1
  geom_vline(xintercept = seq(2010, 2030, 1), col = "grey",size = 0.1)+
 
#横線を入れる。0から50まで、10ごとに。色は灰色
  geom_hline(yintercept = seq(0, 50, 10), col = "grey")+
 
#0以上Y以下を色塗りする。色はskyblue2、透明度alphaは0.8
  geom_ribbon(fill="skyblue2",alpha=0.8, aes(ymin=0, ymax=Y)) + 
 
#折れ線グラフ
  geom_line()+
 
#点を描画(散布図と同じ)
  geom_point()+
 
#横軸、縦軸にラベル。グラフにタイトルをつける
  xlab("西暦") + 
  ylab ("変数") +
  ggtitle ("折れ線グラフ") +
 
#縦軸を0から50とする。0から50に、10ごとに目盛り
  scale_y_continuous(limits = c(0, 50),breaks = seq(0,50,10))+
 
#黒い横線を0に引く
  geom_hline(yintercept = 0, col = "black")+
 
#日本語バグを回避
  theme_test(base_family = "HiraKakuPro-W3")
##解説なし
ggplot(data0, aes(x = year, y = Y))+
  geom_vline(xintercept = seq(2010, 2030, 1), col = "grey",size = 0.1)+
  geom_hline(yintercept = seq(0, 50, 10), col = "grey")+
  geom_ribbon(fill="skyblue2",alpha=0.8, aes(ymin=0, ymax=Y)) + 
  geom_line()+
  geom_point()+
  xlab("西暦") + 
  ylab ("変数") +
  ggtitle ("折れ線グラフ") +
  scale_y_continuous(limits = c(0, 50),breaks = seq(0,50,10))+
  geom_hline(yintercept = 0, col = "black")+
  theme_test(base_family = "HiraKakuPro-W3")

複数の折れ線グラフ

練習用データの生成

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

#西暦を生成 2010から2030まで1年ごと
year  <- seq(2010,2030,1)

#誤差項を生成 サンプルサイズ21、母平均0、標準偏差5
random1 <- rnorm(n=21, mean =0, sd=3) 
random2 <- rnorm(n=21, mean =0, sd=3) 

#Yを生成
Y1 <- 50 + 1.5*(year-2010) + random1 
Y2 <- 20 + 5*(year-2010) + random2

data0 <- data.frame(year,Y1,Y2)

基本形

ggplot(data0, aes(x = year))+  
  geom_line(aes(y = Y1,colour = "Y1"))+ #Y1の折れ線
  geom_line(aes(y = Y2,colour = "Y2"))+ #Y2の折れ線
  labs(color = "凡例")+
  theme_grey(base_family = "HiraKakuPro-W3") #凡例

補足:色について

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

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

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