Motivation
ggplot2()は割と綺麗なグラフが描けるので重宝しているが、
いかんせんそこまで高頻度で使うわけでないので、忘れてしまう。
備忘として、積み上げ折れ線グラフの作りかたを書き記しておく。
参考URL
URL1
ill-identified.hatenablog.com
URL2
mukkujohn.hatenablog.com
上のブログだとgeom_line()とgeom_ribbon()を用いた方法が、下のブログではgeom_area()を用いた方法が紹介されている
やってみる
データ準備
データに関しては、参考URL1で用いられているSeatbeltsデータを使う
data(Seatbelts) df <- data.frame(Seatbelts, year=rep(1969:1984,each=12) ) df_byYear <- dplyr::summarize( dplyr::group_by( df , year), drivers= sum(drivers) , front=sum(front) , rear = sum(rear) ) #年ごとに集計 df.melt <- reshape2::melt( dplyr::select( df_byYear, year , drivers , front, rear) , id.vars = "year" ) #縦に溶かす
geom_area()で描画
見た目が思い通りであれば、別にどの関数を使用しても構わない派である。
ゆえに、参考URL2で紹介されているgeom_area()を用いた方が簡易な気がするため、こっちにする。
まず普通にやる。
tsumiage1 <- ggplot( data = df.melt) + geom_area( mapping= aes( x = year , y = value , fill = variable) ) plot(tsumiage1)
多少カスタマイズする
quartzFonts(HiraMaru=quartzFont(rep("HiraMaruProN-W4",4))) #Font指定 tsumiage2 <- ggplot( data = df.melt) + geom_area( mapping= aes( x = year , y = value , fill = variable) , color = "black", alpha = 0.7) + scale_fill_brewer(palette="Oranges",name="死亡内訳" , breaks = c("drivers" , "front","rear") ,labels = c("運転者" , "前部座席", "後部座席" ) ) +theme_bw(base_family = "HiraMaru") +xlab("年度") + ylab("死亡者数")
カスタマイズ上参考になるURLはこちら
Enjoy!