#概要
Rで、二軸のグラフ描画を行います。
内容は以下です。
・サンプルデータの作成
・通常の描画
・二軸で描画
#サンプルデータの作成
まずは、サンプルデータの作成をします。
今回は、30日分の売り上げと、購入者数、購入日がある3列のデータを作成します。
##まずはサンプルデータ作成
#購入金額データ
purchase <- rnorm(n=30, mean=400000, sd=50000) %>%
as.integer()
#購入者数データ
usr_num <- rnorm(n=30, mean=200, sd=50) %>%
as.integer()
#上で作成したデータをデータフレームにし、購入日列の追加
data <-data.frame(purchase, usr_num) %>%
mutate(date = seq(1:length(purchase)))
以下のような、purchase(購入金額合計)、usr_num(購入者数)、date(購入日)の
3列からなるサンプルデータができました。
##通常の描画
通常、購入金額合計と、購入者数のような、単位の大きく異なる二数を
一つのグラフにまとめようとすると、以下のグラフのように、
単位の小さい購入者数は、増減の波がないように見えてしまいます。
##二軸で描画してみよう
###1.まずはグラフパラメータの設定から
通常、一軸のメモリを置くだけのスペースしかないので、グラフパラメータを変更して、
2軸目を置くとこが出来る余白を作ります。
##グラフパラメータを変更する
#パラメータを元に戻せるよう、デフォルト値を保持しておく
default_mai <-par()
#グラフパラメータの設定
mai <- par()$mai
#余白サイズの設定(上下と左右の幅を揃える)
mai[4] <- mai[1]
#指定した余白サイズの適用
par(mai = mai)
###2.一つ目のグラフを描こう
これはいつも通りに。
##1つ目のグラフの描画
plot(
data$usr_num,
type = "l", #"l"で折れ線グラフの指定
ylab = "usr_num", #y軸の表示
col = "blue" #線の色の指定
)
先ほど、余白を作っておいたので、通常よりも右側があいています
###3.二つ目のグラフを描こう
ここからが本番です!
##2つ目のグラフの表示
par(new = T) #現在のplotに上描きの設定
plot(
data$purchase, #plotしたいものを指定
type = "l",
axes = FALSE, #axes=Fの指定をしないと既存の軸の上に軸が乗ってしまう
ylab = "", #空にしておかないと既存の表示の上に重なってしまう
col="red"
)
#2軸目を表示
axis(4) #どこにメモリを置くか(1なら下,2なら左,3なら上,4なら右)
#2軸目のラベル設定
mtext("purchase", #2軸目のラベル名
side = 4, #どこにラベルを置くか(1なら下,2なら左,3なら上,4なら右)
line = 2 #グラフの枠からの距離
)
完成 \ (@^0^@) /
購入者数と金額の増減の波は、ある程度関係があるように見えます。
描くグラフによって、新しい発見があることが多いです。
###4.最後に
最初に変更した、グラフパラメータを元に戻しておきましょう。
#グラフパラメータの余白をデフォルト値に戻す
par(mai = default_mai$mai)