積み上げ折れ線グラフ
例として、国立がんセンターの「がんに関する統計データ」の子宮頸がん死亡データを使う。
ここからエクセルファイルをダウンロードし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)