積み上げ折れ線グラフ

例として、国立がんセンターの「がんに関する統計データ」の子宮頸がん死亡データを使う。

ganjoho.jp

ここからエクセルファイルをダウンロードしRに読み込む。

エクセルデータを読み込むためのパッケージには各種あるが、ここでは gdata を用いている。

続いて、子宮頸部のコード(=17)を確認して、該当データを抽出する。

なお、データは5歳刻みの年齢階級に分割されているが、この並びを反転させておくのが、グラフをプロットするためのポイント。

library(gdata)
library(ggthemes)
library(ggplot2)
library(reshape2)

 

fn <- "cancer_mortality(1958-2017).xls"
url <- paste0("https://ganjoho.jp/data/reg_stat/statistics/dl/", fn)
download.file(url, destfile = fn)

 

d <- read.xls(fn, sheet = 3)
cr <- d[d$コード == 17,]
year <- cr$死亡年
num <- cr[25:8]

colnames(num) <- rev(c( "0-4",      "5-9",     "10-14", "15-19",
                                           "20-24", "25-29", "30-34", "35-39", "40-44",
                                           "45-49", "50-54", "55-59", "60-64", "65-69",
                                           "70-74", "75-79", "80-84", "85-"))

 

積み上げ折れ線グラフは geom_area で簡単にプロットできる。

df <- melt(cbind(year, num), id.var = "year")
colnames(df) <- c("Year", "Age", "Number")

cols = colorRampPalette(c("#0068b7", "white", "#f39800"))


p <- ggplot(df, aes(x = Year, y = Number))
p <- p + geom_area(aes(group = Age, fill = Age))
p <- p + scale_fill_manual(values = cols(18))
p <- p + theme_economist()
p <- p + theme(axis.title = element_text(size = 14))
p <- p + ggtitle("子宮頸がん死亡数(1958〜2017)")
print(p)

f:id:fusion0202:20190531082710p:plain