可以使用annotation_custom()将图像添加到ggplot图形:
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)
这将根据打印的大小缩放图像。有没有办法保持图像的宽高比?
vhmi4jdf1#
如果希望图像在调整大小时自动保留纵横比,则不要使用annotation_raster(添加geom_raster图层),而应使用annotation_custom,其中my_image用于创建grid::rasterGrob在这里,我在整个面板周围添加了一个框架,以便您可以看到图像的纵横比如何保持,无论绘图尺寸发生什么变化:
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)
1条答案
按热度按时间vhmi4jdf1#
如果希望图像在调整大小时自动保留纵横比,则不要使用
annotation_raster
(添加geom_raster
图层),而应使用annotation_custom
,其中my_image
用于创建grid::rasterGrob
在这里,我在整个面板周围添加了一个框架,以便您可以看到图像的纵横比如何保持,无论绘图尺寸发生什么变化: