我用geom_tile
创建了一个热图,其中x和y的值相同且按相同的方式排序。
我希望在图表对角线上的瓷砖周围添加黑色边框。
set.seed(42L)
data <- data.frame(x = rep(letters[1:3], each = 3L),
y = rep(letters[1:3], 3L),
fill = rnorm(9L))
我的建议是使用color
aes,并将变量设置为TRUE
或NA
,然后使用scale_color_manual
来删除NA
值的灰色边框。
data$diag <- data$x == data$y
data$diag[!data$diag] <- NA
ggplot(data, aes(x = x, y = y, fill = fill)) +
geom_tile(aes(color = diag), size = 2) +
scale_color_manual(guide = FALSE, values = c(`TRUE` = "black"))
但是渲染效果不是很清晰,边框看起来有点被“隐形”的NA边框覆盖了。
如何改进我的图表?还有其他方法吗? 谢谢。
geom_tile
函数中没有办法做到这一点吗? - Julien Navarregeom_tile
之外,还必须对数据进行排序。 - Julius Vainora