8.3 【例2】リサイクル率の推移の可視化
ここでは、都道府県別のリサイクル率を可視化してみます。データベースから「リサイクル率」で検索すると「社会・人口統計体系」の「都道府県データ」がヒットしますので、これを用います。データIDは0000010108
となります。
estat_getMetaInfo(appId, statsDataId = "0000010108")$cat01 %>%
filter(str_detect(`@name`, "リサイクル率"))
## # A tibble: 1 x 4
## `@code` `@name` `@level` `@unit`
## <chr> <chr> <chr> <chr>
## 1 H5614 H5614_ごみのリサイクル率 1 %
<- estat_getStatsData(appId, statsDataId = "0000010108",
rr cdCat01 = "H5614") %>%
filter(地域 != "全国")
## Fetching record 1-960... (total: 960 records)
head(rr)
## # A tibble: 6 x 11
## tab_code 観測値 cat01_code `H 居住` area_code 地域 time_code 調査年 unit
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 00001 観測値 H5614 H5614_ごみの~ 01000 北海~ 19991000~ 1999~ %
## 2 00001 観測値 H5614 H5614_ごみの~ 01000 北海~ 20001000~ 2000~ %
## 3 00001 観測値 H5614 H5614_ごみの~ 01000 北海~ 20011000~ 2001~ %
## 4 00001 観測値 H5614 H5614_ごみの~ 01000 北海~ 20021000~ 2002~ %
## 5 00001 観測値 H5614 H5614_ごみの~ 01000 北海~ 20031000~ 2003~ %
## 6 00001 観測値 H5614 H5614_ごみの~ 01000 北海~ 20041000~ 2004~ %
## # ... with 2 more variables: value <dbl>, annotation <chr>
%>%
rr separate(調査年, "year", sep = 4, convert = TRUE) %>%
ggplot(aes(year, value, group = 地域, color = 地域)) +
geom_line() +
theme_minimal() +
labs(x = "調査年", y = "リサイクル率[%]",
title = "都道府県別リサイクル率の推移",
caption = "出典:都道府県・市区町村のすがた(社会・人口統計体系)")
グラフから、全体としてリサイクル率が向上していることは分かりますが、線が多すぎて詳細がよく分かりません。プレゼンテーション用にグラフを加工してみます。グラフの表示方法でよく用いられるテクニックが「ハイライト」です。ここでは、最新の集計年での順位に基づき、1位と最下位、および福岡県をハイライトします。ggplot2のグラフでハイライトを行うには、gghighlightパッケージを用います。初めて使う場合は、インストールとセッション開始時のロードを行っておきます。
install.packages("gghighlight")
library(gghighlight)
gghighlightパッケージで利用できるgghighlight()
関数でfilter()
関数と同様の書式で、ハイライトしたいデータを抽出する式を記述することで、該当するデータのハイライトができるようになります。例えばmpg
データの場合に、midsize
のクラスだけハイライトするには以下のようにします。
ggplot(mpg, aes(class)) +
geom_bar() +
gghighlight(class == "midsize", use_group_by = FALSE)
## label_key: class
2017年度のリサイクル率の順位に基づいてハイライトするため、2017年度のリサイクル率の順位を計算しておきます。
<- filter(rr, 調査年 == "2017年度") %>%
order2017 mutate(order = min_rank(value)) %>%
select(地域, order)
head(order2017)
## # A tibble: 6 x 2
## 地域 order
## <chr> <int>
## 1 北海道 42
## 2 青森県 6
## 3 岩手県 23
## 4 宮城県 14
## 5 秋田県 10
## 6 山形県 5
これをリサイクル率のデータと結合して、リサイクル率が1位、47位および福岡県のデータをハイライトさせます。
%>%
rr left_join(order2017) %>%
separate(調査年, "year", sep = 4, convert = TRUE) %>%
ggplot(aes(year, value, group = 地域, color = 地域)) +
geom_line() +
gghighlight(order %in% c(1, 47) | 地域 == "福岡県",
use_group_by = FALSE,
label_params = list(direction = "y")) +
theme_minimal() +
labs(x = "調査年", y = "リサイクル率[%]",
title = "都道府県別リサイクル率の推移",
caption = "出典:都道府県・市区町村のすがた(社会・人口統計体系)")
## Joining, by = "地域"
## label_key: 地域