我正在尝试通过以下方式突出显示热点图中的单个图块
ggplot(faithfuld, aes(waiting, eruptions)) +
geom_raster(aes(fill = density)) +
geom_tile(data = faithfuld[50, ], fill = "red")
但是,结果不是突出显示(此处是随机选择的)图块,而是添加了更多的arbitray图块。
为什么会这样,我如何添加正确的图块尺寸的第二个geom_tile
层?
答案 0 :(得分:1)
图像中的geom_tile
突出显示了您想要的确切图块(它采用给定的数据点并将它们设置为图块的中心),但是很难看到这一点,因为它创建的图块非常长。如果您使用width
和height
设置进行游戏,则可以获得更合理的信息。
ggplot(faithfuld, aes(waiting, eruptions)) +
geom_raster(aes(fill = density)) +
geom_tile(data = faithfuld[50, ], width = 1, height = 0.1, fill = "red")
编辑:
如何获取geom_raster
的确切高度和宽度并将其与geom_tile
一起使用(两者的默认值均为1):
p <- ggplot(faithfuld, aes(waiting, eruptions)) +
geom_raster(aes(fill = density))
tmp <- ggplot_build(p)$data[[1]][2,] # get the first data point from geom_raster
width <- tmp$xmax - tmp$xmin # calculate the width of the rectangle
height <- tmp$ymax - tmp$ymin # calculate the height of the rectangle
p <- p +
geom_tile(data = faithfuld[50, ], width = width, height = height, fill = "red")
还有其他解决方案,例如one,您可以对变量进行分类。