Rで解析:ggplot2でjoyplotを作成「ggjoy」パッケージ


投稿日: Rの解析に役に立つ記事

joyplotは多数の分布の変化を把握するのに便利な表現方法だと考えます。そんな、joyplotをggplot2で作成できるパッケージの紹介です。

なお、joyplotが誕生した経緯はgithubのggjoyパッケージに記述されています。

 ・github「ggjoy」
  https://github.com/clauswilke/ggjoy

本パッケージの利用方法ですが、データを用意しggplotコマンドにgeom_joyまたはgom_joy2コマンドを加えるだけです。直感的に使用できると考えます。

紹介では気象庁から17.07.15の各都道府県の最高気温を0:00から23:00まで1時間毎に取得し、joyplotを作成しました。

パッケージバージョンは0.1。windows 10のR version 3.4.1で動作を確認しています。


パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("ggjoy")

気象庁から最高気温を取得

最高気温はNewMaxTempに格納しています。

#都道府県を準備
JpanPref <- c(&quot;北海道&quot;, &quot;青森県&quot;, &quot;岩手県&quot;, &quot;宮城県&quot;, &quot;福島県&quot;, &quot;茨城県&quot;, &quot;千葉県&quot;, &quot;秋田県&quot;, &quot;山形県&quot;,
              &quot;新潟県&quot;, &quot;栃木県&quot;, &quot;埼玉県&quot;, &quot;東京都&quot;, &quot;群馬県&quot;, &quot;山梨県&quot;, &quot;神奈川県&quot;, &quot;富山県&quot;,
              &quot;長野県&quot;, &quot;静岡県&quot;, &quot;石川県&quot;, &quot;福井県&quot;, &quot;岐阜県&quot;, &quot;愛知県&quot;, &quot;滋賀県&quot;, &quot;三重県&quot;,
              &quot;京都府&quot;, &quot;奈良県&quot;, &quot;和歌山県&quot;, &quot;兵庫県&quot;, &quot;大阪府&quot;, &quot;鳥取県&quot;, &quot;岡山県&quot;, &quot;島根県&quot;,
              &quot;広島県&quot;, &quot;香川県&quot;, &quot;徳島県&quot;, &quot;愛媛県&quot;, &quot;高知県&quot;, &quot;山口県&quot;, &quot;福岡県&quot;, &quot;大分県&quot;,
              &quot;宮崎県&quot;, &quot;佐賀県&quot;, &quot;熊本県&quot;, &quot;鹿児島県&quot;, &quot;長崎県&quot;, &quot;沖縄県&quot;)

#時間文字列を作成
Hour <- paste0(formatC(0:23, width = 2, flag = &quot;0&quot;), &quot;00&quot;)

#データ保管用変数
NewMaxTemp <- data.frame()

for(i in seq(Hour)){
###気象庁より17.07.15の時間毎の気温最新を取得#####
MaxTemp <- read.csv(paste0(&quot;http://www.data.jma.go.jp/obd/stats/data/mdrr/tem_rct/alltable/mxtemsadext00_20170715&quot;, Hour&#91;i&#93;, &quot;.csv&quot;),
                    header = T, fileEncoding = &quot;cp932&quot;)
#最高気温処理
GetMaxTemp <- NULL
for(n in 1:47){
  #都道府県を抽出
  GetPrefData <- MaxTemp&#91;which(MaxTemp&#91;, 2&#93; %in% grep(JpanPref&#91;n&#93;, MaxTemp&#91;, 2&#93;, value = TRUE)),&#93;
  #最高気温を降順で並び替え
  GetPrefData <- GetPrefData&#91;order(GetPrefData&#91;, 10&#93;, decreasing = TRUE),&#93;
  #最高気温を取得
  GetMaxTemp <- c(GetMaxTemp, GetPrefData&#91;1, 10&#93;)
}

  HourTemp <- cbind(Hour&#91;i&#93;, JpanPref, GetMaxTemp)
  NewMaxTemp <- rbind(NewMaxTemp, HourTemp)
  
}

#列名を付与
colnames(NewMaxTemp) <- c(&quot;Hour&quot;, &quot;Pref&quot;, &quot;MaxTemp&quot;)

#最高気温を数値化
NewMaxTemp&#91;, 3&#93; <- type.convert(as.character(NewMaxTemp&#91;, 3&#93;))
&#91;/code&#93;
<hr />

<h2>コマンドの紹介</h2>
詳細はコマンド、パッケージのヘルプを確認してください。体裁はggplot2のコマンドで調整可能です。


#パッケージの読み込み
library(&quot;ggjoy&quot;)

#joyplotの作成
ggplot(NewMaxTemp, aes(x = MaxTemp, y = Pref, fill = Pref)) +
  geom_joy(show.legend = F) +
  geom_vline(xintercept = 30, col = &quot;#ffc1c1&quot;) +
  theme(axis.text.y = element_text(size = 7.5),
        axis.text = element_text(colour = &quot;#ffffe0&quot;),
        panel.grid = element_blank(), 
        panel.background = element_rect(fill = &quot;#0a0a0a&quot;),
        plot.background = element_rect(fill = &quot;#0a0a0a&quot;),
        plot.margin = unit(rep(0.2, 4), &quot;cm&quot;))

出力例

・joyplotの作成
北海道が大変暑いようです。


少しでも、あなたの解析が楽になりますように!!

スポンサードリンク

関連コンテンツ


スポンサードリンク