r - 有没有办法在 ggplot 的 geom_image 中添加 alpha 值?

标签 r ggplot2

我目前正在尝试创建一个将 Logo 映射到 X 和 Y 坐标的图。虽然目标是拥有另一组具有相同 Logo 但具有 alpha 值的点,以便 Logo 更加透明。

这是一个可重现的例子。目标是让左侧的 Logo 透明。

library(ggimage)
library(tidyverse)
library(RCurl)

Sample_X1 <- c(1,0,2,3,1)
Sample_X2 <- c(4,5,7,4,3)
Sample_Y <- c('A','B','C','D','E')
Logo <- 'https://i1.pngguru.com/preview/233/348/954/numix-circle-for-windows-rstudio-icon-png-icon-thumbnail.jpg'

data <- data.frame(cbind(Sample_X1, Sample_X2, Sample_Y, Logo))

ggplot(data = data) +
  geom_segment(aes(x = Sample_X1, xend = Sample_X2, y = Sample_Y, yend = Sample_Y), size = 1) +
  geom_image(aes(x = Sample_X1, y = Sample_Y, image = Logo), size = .05) +
  geom_image(aes(x = Sample_X2, y = Sample_Y, image = Logo), size = .05) +
  theme_minimal() +
  labs(title = 'Example for Stack Overflow')

Sample Output

有没有办法用ggplot来完成这个?到目前为止,我只能找到使背景 Logo 透明的方法,但无法将它们映射到 XY 数据。

任何帮助表示赞赏!

最佳答案

image_fun参数可用于定义应如何处理图像。 image_fx可用于设置 Alpha channel 。

library(ggplot2)

transparent <- function(img) {
  magick::image_fx(img, expression = "0.5*a", channel = "alpha")
}

ggplot(data.frame(x = runif(10), y = runif(10)), aes(x, y)) +
  ggimage::geom_image(
    image = system.file("extdata/Rlogo.png", package="ggimage"),
    image_fun = transparent,
    size = 0.3
  )
plot

关于r - 有没有办法在 ggplot 的 geom_image 中添加 alpha 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60820565/

相关文章:

r - 在 Reference Class 对象中定义非标准类

r - 在 ggplot2 的条形图中为分类变量添加阴影替代区域

r - ggplot2:更改图例元素之一的背景颜色

r - 如何在ggplot中使用变量指定列名

r - 使用 ggplot2 和已经制表的数据分组条形图

r - 聚合数据框以按排序的列值列出

r - 基于 2 列数据框和键值列表添加列

r - 通过 ggplot2 将纹理类添加到土壤分类三角形

r - 警告 : closing unused connection n

r - 将 ggplot2 geoms 添加到简单的特征图