我正在使用热图来使用 ggplot 特别是 geom_tile 来呈现多元数据。我可以使用填充作为一种美感来显示一个变量,但我也想使用各个图块的大小来显示辅助变量。
我能够使用线宽作为一种美学来模仿效果,但由于尺寸和缩放差异,它很容易出现图形故障和不一致。比例必须设置得非常高才能显示可见的效果,这也会导致图例无法使用。我还尝试使用瓷砖的高度和宽度,但没有成功。有没有更好的方法来达到类似的效果?
plot <- mpg %>%
filter(manufacturer == "audi") %>%
ggplot(aes(
y = model, x = year)) +
geom_tile(aes(
fill = cty,
linewidth = hwy
), color = "white") +
scale_linewidth(
range = c(0, 50), guide = "none")
geom_tile() 接受宽度和高度美学。没有scale_width_()或scale_height_(),所以使用scales::rescale()将hwy值映射到0,1范围内可用的值:
geom_tile(
aes(
fill = cty,
width = scales::rescale(hwy, from = c((min(mpg$hwy)), (max(mpg$hwy))), to = c(0.1, 1)),
height = scales::rescale(hwy, from = c((min(mpg$hwy)), (max(mpg$hwy))), to = c(0.1, 1))
)
)