7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

R 二軸でのplot()

Last updated at Posted at 2017-07-11

概要

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列からなるサンプルデータができました。

スクリーンショット 2017-06-05 14.16.18.png

通常の描画

通常、購入金額合計と、購入者数のような、単位の大きく異なる二数を
一つのグラフにまとめようとすると、以下のグラフのように、
単位の小さい購入者数は、増減の波がないように見えてしまいます。

スクリーンショット 2017-06-05 14.13.27.png

二軸で描画してみよう

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" #線の色の指定
  ) 

先ほど、余白を作っておいたので、通常よりも右側があいています
スクリーンショット 2017-06-08 18.21.28.png

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 #グラフの枠からの距離
      )

スクリーンショット 2017-06-08 18.23.13.png

完成 \ (@^0^@) /
購入者数と金額の増減の波は、ある程度関係があるように見えます。
描くグラフによって、新しい発見があることが多いです。

4.最後に

最初に変更した、グラフパラメータを元に戻しておきましょう。

#グラフパラメータの余白をデフォルト値に戻す
par(mai = default_mai$mai)

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?