如何自定义ggplot2中geom_tile内的轮廓形状?
Posted
技术标签:
【中文标题】如何自定义ggplot2中geom_tile内的轮廓形状?【英文标题】:How to customize the shape of an contour made inside a geom_tile in ggplot2? 【发布时间】:2021-11-22 08:45:48 【问题描述】:使用geom_tile
绘制了 X、Y 和 Z 数据集。我想在值小于或等于 2 的图块周围画一条等高线。为此,我使用了 stat_contour
函数,但结果不如预期。我怎样才能得到预期的结果? (最后一张)
library(ggplot2)
X <- 1:3
Y <- seq(0,20,10)
df <- expand.grid(X = X, Y = Y)
df$Z <- c(5,4,9,2.1,1.5,1.2,6,7,1.9)
ggplot(df, aes(X, Y)) +
geom_tile(aes(fill = Z)) +
scale_fill_distiller(palette = "RdYlGn") +
stat_contour(aes(z = Z),
breaks = 2,
color = 1)
我想要类似的东西:
【问题讨论】:
【参考方案1】:您可以尝试使用仅包含 Z
layer <- df %>% filter(Z <= 2)
ggplot(df, aes(X, Y)) +
geom_tile(aes(fill = Z)) +
scale_fill_distiller(palette = "RdYlGn") +
geom_tile(data=layer, alpha = 0.0, color = "black", size = 1, linejoin = "round") +
geom_tile(data=layer, alpha = 1, aes(fill = Z))
【讨论】:
以上是关于如何自定义ggplot2中geom_tile内的轮廓形状?的主要内容,如果未能解决你的问题,请参考以下文章
R语言ggplot2可视化:使用geom_rect函数在指定的位置添加自定义颜色的方框突出(hightlight)特定区域内的数据内容(transparent window/keyhole)
如何使用箭头指示的偏移 geom_text() 标签绘制 geom_tile()?
@ViewChild 返回未定义。我无法访问模式内的轮播 ElementRef