非常に多くの行 (数千の都市) を含むヒートマップがあるため、わかりやすくするために、そのうちのいくつかの名前のみを表示したいと思います。色が状況の感覚を与えるので、ヒートマップ全体を表示したいと思います (都市名は重要ではありませんが、教育目的でそれらのいくつかを表示したいと思います)。
library(ggplot2)
n <- 15
c.1 <- c(rep(x="Summer", times=n), rep(x="Winter", times=n))
c.2 <- c(rep(x="Dallas", times=n/5), rep(x="Seattle", times=n/5), rep(x="Atlanta", times=n/5), rep(x="Chicago", times=n/5), rep(x="Boston", times=n/5))
c.3 <- c("Morning", "Midday", "Evening")
to.plot <- data.frame(cbind(c.1, c.2, c.3))
to.plot$value <- sample(rep(x=c("Bad", "Average", "Good"), times=100), 10)
colnames(to.plot) <- c("Season", "City", "Time", "value")
to.plot$City <- factor(to.plot$City, levels=c("Seattle", "Chicago", "Dallas", "Atlanta", "Boston"), ordered=TRUE)
p <- ggplot(to.plot, aes(x=Season, y=City))
p <- p + geom_tile(aes(fill=value), colour="white")
p <- p + scale_fill_manual(values=c("red", "green", "yellow"))
p <- p + theme(legend.position = "none", axis.text.x=element_text(angle=90, 8))
p <- p + facet_grid(. ~ Time)
p <- p + theme(legend.position = "none")
print(p)
5 つの都市のみのサンプル プロットでは、5 つの都市名すべてを簡単に確認できますが、数千の都市を含む実際の例では、それらがぼやけています。
3 分の 1 程度の都市名しか表示されていないのに、まったく同じヒートマップを表示するにはどうすればよいですか? 順序はプロットの視覚化に関連するため、順序付けられた因子を含めました (因数分解が問題の原因である可能性がありますが、因子の順序が存在する必要があります)。