二次元の集計表をヒートマップにする
はじめに
メモです。 data.tableからこういうのを作りたかったのです。 data.frameだったら、reshape2でやればいいのですが、data.tableのままでやるには以下のようにします。
やってみた
library(data.table)
library(ggplot2)
library(reshape2)
d <- fread(filename)
dat <- dcast.data.table(d, Var1 ~ Var2, fun=length)
dat2 <- melt(dat, id.vars = "Var1")
g <- ggplot(dat2, aes(as.factor(Var1), variable, group=variable)) +
geom_tile(aes(fill = value)) +
geom_text(aes(fill = dat2$value, label = round(dat2$value, 1)), size=2) +
scale_fill_gradient(low = "white", high = "red")
print(g)
d
, dat
, dat2
はいずれもdata.tableオブジェクトです。