如何使用图像作为ggplot2图的背景?
例如,代码:
mtcars %>%
ggplot(aes(cyl)) +
geom_bar() +
theme(plot.background = element_rect(fill = "black"))
结果如下:
并且背景颜色是黑色。
如何选择图片作为背景,而不仅要选择其颜色?
答案 0 :(得分:3)
我们可以使用ggpubr::background_image
。这是一个可重现的最小示例
library(ggpubr)
library(jpeg)
# Download and read sample image (readJPEG doesn't work with urls)
url <- "http://mathworld.wolfram.com/images/gifs/rabbduck.jpg"
download.file(url, destfile = "rabbduck.jpg")
img <- readJPEG("rabbduck.jpg")
ggplot(iris, aes(Species, Sepal.Length)) +
background_image(img) +
geom_boxplot(aes(fill = Species))
要将整个画布用作背景图像的绘制区域,可以使用ggimage::ggbackground
(感谢@Marius)
library(ggimage)
g <- ggplot(iris, aes(Species, Sepal.Length)) +
geom_boxplot(aes(fill = Species))
ggbackground(g, url)
答案 1 :(得分:1)
您可以在另一个图上绘制图
library(ggplot2)
p <- ggplot(mtcars, aes(cyl)) +
geom_bar() +
theme(plot.background = element_rect(fill=NA))
library(grid)
grid.draw(gList(rasterGrob(img, width = unit(1,"npc"), height = unit(1,"npc")),
ggplotGrob(p)))