更改ggplot中背景图像的透明度[重复]

Posted

技术标签:

【中文标题】更改ggplot中背景图像的透明度[重复]【英文标题】:change transparency of background image in ggplot [duplicate] 【发布时间】:2021-12-30 14:27:52 【问题描述】:

我添加了背景图片,如何将背景图片的 alpha 设置为 0.5?

library(tidyverse)
library(png)
library(ggpubr)

tbl = tibble(x = runif(25),
          y = runif(25))

# read any image from computer for background
im = readPNG("temp.png")

ggplot(data = tbl, 
       aes(x = x, 
           y = y)) + 
  background_image(im) + 
  geom_point(color = "red",
             size = 5)

【问题讨论】:

***.com/questions/11357926/… 这不起作用 ...真的不需要ggpubr;你可以使用annotation_raster(yourAlphaImageMatrix, xmin=-Inf, ymin=-Inf, xmax=Inf, ymax=Inf) 【参考方案1】:

你需要在绘制之前设置 alpha

之前:

im <- readPNG("example.image.png")
im2 <- matrix(rgb(im[,,1],im[,,2],im[,,3], im[,,4] * 0.5), nrow=dim(im)[1]) ## you can change 0.5 to change the alpa

然后你可以应用这个:

library(png)
library(grid)
library(tibble)

ggplot(data = tbl, 
       aes(x = x, 
           y = y)) + 
  annotation_custom(rasterGrob(im2, 
                               width = unit(1,"npc"), 
                               height = unit(1,"npc")), 
                    -Inf, Inf, -Inf, Inf) +
  geom_point(color = "red",
             size = 5)

之后:

【讨论】:

以上是关于更改ggplot中背景图像的透明度[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在角度和 scss 中悬停时更改背景图像不透明度

减少一个 div 中的背景图像不透明度 [重复]

更改背景图像不透明度

与ggplot2的透明背景图表在高分辨率,R

ggplot密度图改变图例背景和方形填充

如何让透明背景图像重复