R语言 ggplot:annotation_custom纵横比保留

cigdeys3  于 2023-05-20  发布在  其他
关注(0)|答案(1)|浏览(189)

可以使用annotation_custom()将图像添加到ggplot图形:

library("png")
my_image <- readPNG("Rlogo.png", native = TRUE)
ggplot() + theme_void() + 
  annotation_raster(my_image, xmin=-Inf, ymin=-Inf, xmax=Inf, ymax=Inf)

这将根据打印的大小缩放图像。
有没有办法保持图像的宽高比?

vhmi4jdf

vhmi4jdf1#

如果希望图像在调整大小时自动保留纵横比,则不要使用annotation_raster(添加geom_raster图层),而应使用annotation_custom,其中my_image用于创建grid::rasterGrob
在这里,我在整个面板周围添加了一个框架,以便您可以看到图像的纵横比如何保持,无论绘图尺寸发生什么变化:

library(png)

my_image <- readPNG('D://Rlogo.png', native = TRUE)

ggplot() + 
  theme_void() + 
  theme(plot.background = element_rect(linewidth = 2, color = 'black')) +
  annotation_custom(grid::rasterGrob(my_image), 
                    xmin = -Inf, ymin = -Inf, xmax = Inf, ymax = Inf)

相关问题