時短・英語・プログラミング・心理/社会😋みさた

現段階では特定のジャンル・体裁にこだわる予定はありません。固定ページに詳しく説明させていただいています。 サブログ開設!⇨https://misacharo-nikki.hatenablog.com/

【R Studio_自分用メモ】一瞬でヒストグラムがかける関数!

f:id:zsdvabo1:20210430114206p:plain
タイトルそのままです。
ヒストグラムの描写が一瞬でできる関数を作りました。
ぜひ参考になさってください。必要に応じてアレンジし放題ですよ~😋

ヒストグラムを描画する関数ー基本編ー

「histogram_description」という名前の関数を定義します。
データ:histogram_data
ヒストグラムの色:col
x軸の最小値:x_min
x軸の最大値:x_max
bin幅:bin_width
y軸の最大値:y_max
グラフのラベル:label
相対度数か頻度か:freq

histogram_description <- function(histogram_data, col, x_min, x_max, bin_width, y_max, label, freq) {
  hist(histogram_data,
       col=col,
       breaks=seq(x_min,x_max,bin_width),
       ylim=c(0,y_max),
       main=label,
       freq= freq)
}

実際に走らせます😋
データは適当に発生させた乱数「runif(100)*100」とします。
0-100の値のほうが直感的にわかりやすいと思うので、100をかけます。
まずは、グラフを黄色にして、絶対頻度ではなく相対度数を描画してみましょう!

histogram_description(runif(100)*100, "yellow", 0, 100, 10, 0.02, "みさちゃろ", FALSE)

出力

f:id:zsdvabo1:20210429161521p:plain
FreqをFALSEと指定しているので、縦軸は相対度数です。

次に色を変えて、今度は相対度数ではなく絶対頻度で描画します。それに合わせて縦軸も調整しましょう!

histogram_description(runif(100)*100, "pink", 0, 100, 10, 0.02, "みさちゃろ", FALSE)
f:id:zsdvabo1:20210429161701p:plain
上と全く同じデータを色を変えて、縦軸を絶対頻度で描画したもの。グラフの形は全く同じですよね。

ヒストグラムを描画する関数ーヒストラグラムを重ねるー

グラフを重ねるオプションを追加する。
相対度数で統一としたので、関数の変数には組み込んでいません。

histogram_description <- function(histogram_data, col, x_min, x_max, bin_width, y_max, label, add) {
  hist(histogram_data,
       col=col,
       breaks=seq(x_min,x_max,bin_width),
       ylim=c(0,y_max),
       main=label,
       freq= FALSE,
       add = add)
}

走らせます。
RではRGBで色と透過度を指定することが可能です。
上に重ねて描画するグラフを透けさせました。

 histogram_description(runif(100)*100, "yellow", 0, 100, 10, 0.02, "みさちゃろ", FALSE)
 histogram_description(runif(100)*100, rgb(1, 0, 0, alpha=0.1), 0, 100, 10, 0.02, "みさちゃろ", TRUE)


出力

f:id:zsdvabo1:20210429161730p:plain
1つ目のヒストラグラム
f:id:zsdvabo1:20210429161750p:plain
薄いピンクの部分が上に重ねて描画したヒストラグラムです。重なっている部分は、ほんのりオレンジになっています。

まとめ

なんども同じ作業をすることが求められる場合は関数を用意しておくと本当に便利です。
私は今後の人生でおそらくヒストグラムはどれだけ少なく見積もっても200回は使うはずです!🙄笑
毎回1から打ち込むとミスも増えるので、みなさんもカスタマイズを楽しんでくださいね。