热图/ggplot geom_tile 中的比例图块大小

问题描述 投票:0回答:1

我正在使用热图来使用 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")

计算机生成的热图图像。

r ggplot2 heatmap aesthetics geom-tile
1个回答
0
投票

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))
      )
    )
© www.soinside.com 2019 - 2024. All rights reserved.