DS講座 tidyverse tidyverse講座

【R前処理講座26】{ggplot2}:可視化 その2【tidyverse】

こんにちは,shun(@datasciencemore)です!

今回は可視化第2弾です.
前回はggplotの基礎について学びました.
それを踏まえ,今回は実務で頻出のグラフを描いてみましょう!
今回描くグラフは以下の3種類です.

  1. ヒストグラム
  2. 散布図
  3. トレンドグラフ

それぞれ見ていきましょう.

今回のデータは,{nycflights13}のweather を使用します.
ちなみにNAがあると色々警告を受けるので,今回はNAは除外して考えましょう.

NAは,欠損値を表す記号です
NAの処理については別記事にするので今は特に気にしなくていいです.
drop_naでNAがある行を削除することができます.

グラフの作成に使用する項目と意味を簡単に説明します.

temp:気温(℉) ※華氏なので注意!!
humid:湿度(%)
time_hour:時刻

グラフの種類はこれ以外にもたくさんあります
棒グラフ,円グラフ,ヴァイオリン図,ヒートマップなどなど..
ただ全部上げると時間がいくらあっても足りないので,よく使う3種類(ヒストグラム,散布図,トレンドグラフ)に厳選しました.
これらの3種類以外のグラフについても機会があれば別記事で紹介したいと思います.
まずは,これらの3種類のグラフの基礎をマスターしましょう!!

1.ヒストグラム

ヒストグラムはx軸に階級を,y軸に度数をとって,各階級についての度数を示したグラフのことです.
ヒストグラムという言葉を知らなくても図をみればすぐにわかると思います.
例えば,humidのヒストグラムを書いてみましょう.

こんな感じで各階級にどれくらい分布しているかが一目瞭然ですね.
例えばhumidは40くらいのときが一番多くて10とか90とか端っこのほうが少ない傾向にあるなんてことがすぐにわかります.

ちなみに階級の数のことをビン数というのですが,ビン数を変えるにはbinsというオプションを使用します.

何もしないとビン数が30なので,少し細かいですよね笑
適宜修正して見やすくしましょう.
binwidthで階級幅を調整したりもできます.

系列ごとに見たい場合は,こんな感じでfillによって指定してあげます.

系列ごとに度数がバラバラで傾向が少しみづらいですね.
そんなときは,ヒストグラムではなくて密度関数で見てみましょう.

密度関数でみると,データの度数に依存しないで傾向を見ることができることが多いです.

2.散布図

散布図は,2項目のデータを縦軸と横軸にプロットしたグラフになります.
これも例をみれば一発で分かると思います.

例として,x軸にtemp,y軸にhumidをとってみましょう.

なんかよくわかりませんね笑

こんなときは系列ごとに見てみましょう.
散布図で系列ごとに見るときはcolorを使用します.

なんか系列ごとに傾向が見えそうですね!
今回は可視化の記事なので,詳細には踏み込みませんが,こんな感じで系列ごとに見てあげると傾向がわかることが実務でもよくあります.

3.トレンドグラフ

トレンドグラフは,x軸に時刻をとって,時刻による数値の移り変わりを示したグラフのことです.
株価チャートとかが有名ですね!

例として,x軸:time_hour,y軸:tempとしたトレンドグラフを書いてみましょう.

春夏秋冬がはっきりわかる,とても分かりやすいグラフですね!
夏が気温のピークでそこから徐々に下がっているのがわかります.

ただ英語アレルギーの僕は,x軸が見づらいです.
x軸をもっと見やすくしてみましょう.

これでもっと分かりやすくなりました!!

こんな感じでggplotには,見やすくなる関数がたくさん用意されているので,いろいろ試してみましょう.
試せば試すほど可視化能力が向上しますよ!!

まとめ

今回は,可視化の具体例ということでデータに{nycflights13}のweatherを使用して以下の3種類のグラフを描きました.

  1. ヒストグラム
  2. 散布図
  3. トレンドグラフ

どれも頻出なのでしっかり記憶にとどめてくださいね!

ggplotは高機能なので,ほとんどのグラフを描けてしまうと思います.
ただ高機能ゆえに関数の数も膨大です.
だからと言って関数を一つずつ覚える必要はないので安心してください.
それらの関数を覚えるのは普通の人間にはできないし,あまり意味ないので,必要に応じてググって描ければ問題ありませんよ.
重要なのはどんな関数があるのがなんとなく把握しておくことです.
あまり焦らないでじっくり取り組んでいきましょう!!

それじゃ,お疲れさまでした!!

 

-DS講座, tidyverse, tidyverse講座