ggplot2でdata.tableから二次元の集計表を作成してヒートマップとして表示

  • 3
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

はじめに

メモです。
data.tableからこういうのを作りたかったのです。
data.frameだったら、reshape2でやればいいのですが、data.tableのままでやるには以下のようにします。

やってみた

ライブラリの読み込み
library(data.table)
library(ggplot2)
library(reshape2)
表の読み込み
d <- fread(filename)
Var1とVar2の組み合わせをカウント
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オブジェクトです。

参考