使用ggplot2 geom_tile控制切片半径

时间:2017-08-07 00:42:07

标签: r ggplot2

我正在尝试使用ggplot2创建一个热图,以控制两个不同的连续变量。只有一个值大于0.对于那个变量,我想控制半径'瓦片的最大值是占用所有可用空间的瓦片,0表示瓦片的区域为0.到目前为止,使用aes(size = ...)没有给出任何结果,我感到迷茫至于做什么。

示例:

library(dplyr)
library(ggplot2)

dat <-
    data_frame(
        factor_1 = as.factor(rep(c(1, 2, 3, 4, 5), 5)),
        factor_2 = as.factor(rep(c(1, 2, 3, 4, 5), each = 5)),
        value_1  = rnorm(25),
        value_2  = runif(25)
    )

ggplot(dat) +
    geom_tile(aes(x = factor_1, y = factor_2, fill = value_1, size = value_2))

产生

heatmap

正如我们所看到的,有一个尺寸图例可以与value_2一起缩放,但是这些图块的大小都是一致的。

我想获得的结果类似于corrplot function此链接的前两个示例,其中圆圈或正方形的大小可能不同,在它们周围留下白色边框。

1 个答案:

答案 0 :(得分:1)

您可以使用widthheight美学:

ggplot(dat) +
    geom_tile(aes(x = factor_1, y = factor_2, fill = value_1, 
                  width = value_2, height = value_2))

出于某种原因,我得到关于这些是“未知的美学”的警告,但他们显然正在努力设置瓷砖的宽度和高度。