R言語のleaflet.minichartsパッケージ -降水量プロット-

 8月27~28日の降水量プロットの続き。降水量の図は、ニョキニョキ伸びた棒グラフで表されていることが多いが、似たような図が描けないか探していたら、R言語でそれっぽいパッケージが紹介されていた。
  ※ 『からだにいいもの』のページ(www.karada-good.net/analyticsr/r-593

 leaflet.minichartsのページは、こちら(rte-antares-rpackage.github.io/leaflet.minichart/)。
 データを棒グラフや円グラフでプロットできる。
 R言語でなくてもプラグイン(.jsファイル)を入れて使えるようだ。

 ひとまずRでleaflet.minichartsパッケージをインストールして、

library(leaflet)
library(leaflet.minicharts)

で呼び出し。

 さすがに日本全国約1300地点のデータを各々グラフにして描画すると重くなるので、降水量が多かった山口、福岡、佐賀、長崎、熊本、大分、宮崎の範囲(142地点)に絞って描画してみる。

rainData <- read.csv("kisyo_rain201908281800geok.csv")

でCSVファイル読み込み。CSVファイルの中身は、山口~宮崎の観測所、緯度、経度、1時間降水量の最大値、24時間降水量の最大値。  

map <- leaflet()
map <- addTiles(map)
map <- setView(map,130.50,33.50,8)

の後、

map <- addMinicharts(map,
lng = rainData[,5],
lat = rainData[,4],
type = "bar",
chartdata = rainData[,6:7],
colorPalette = c("blue","orange"),
width = 20,
height = 50
)
map

 lat・lngで緯度・経度。
 typeのbarは棒グラフ。
 chartdataで1時間降水量の最大値と24時間降水量の最大値。
 colorPaletteで色指定。

 %>%表記の場合、

map <- leaflet() %>%
addTiles() %>%
setView(130.50,33.50,8) %>%
addMinicharts(
lng = rainData[,5],
lat = rainData[,4],
type = "bar",
chartdata = rainData[,6:7],
colorPalette = c("blue","orange"),
width = 20,
height = 50
)
map

 生成されたHTMLを取り出し。

棒グラフ -1時間降水量の最大値と24時間降水量の最大値-   

 もう1パターン、棒グラフ(1時間降水量の最大値)を赤・橙・青で色分けしてみたい。

・
・
・
map2 <- addMinicharts(map2,
lng = rainData[,5],
lat = rainData[,4],
type = "bar",
chartdata = rainData[,6],
fillColor = ifelse(rainData[,6] > 100 , "red" , ifelse (rainData[,6] > 50 & rainData[,6] < 100 , "orange" , "blue")),
width = 10,
height = 50
)
map2

 colorPaletteをfillColorにして……。
 if文でエラー発生。
 『条件が長さが2以上なので、最初の1つだけが使われます』。
 ?。
 困った時の……   
 ベクトル配列は条件文で使えないらしい。ifelse文にしたら解消された。
 100[mm]超で赤色、50[mm]超で橙色、10[mm]超で青色。
 入れ子状になっていくが、これでいいのかな。

棒グラフ -1時間降水量の最大値(色分け)-   

 ちょっと重いのとスマートフォンのタップで反応してくれないのが難点。

タイトルとURLをコピーしました