二次元の集計表をヒートマップにする

はじめに

メモです。 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オブジェクトです。

参考

results matching ""

    No results matching ""