R/ggplot2: 添加带有透明度信息的 png
R/ggplot2: Add png with transparency info
我想在 ggplot2 图上堆叠 PNG 图像。其中一张 png 有 alpha/transparency 信息,但它被忽略了。
如何在 bg.png 之上添加第二张图片 (image1.png),以便保留透明度并在黄色背景上仅显示黑色文本?
例子
library(ggplot2)
library(png)
library(patchwork)
img1 <- readPNG("bg.png", native = TRUE)
img2 <- readPNG("image1.png", native = TRUE)
ggp <- ggplot(data.frame()) +
geom_point() +
theme_nothing() +
inset_element(p = img1,
left = 0,
bottom = 0,
right = 1,
top = 1,
align_to = "full") +
inset_element(p = img2,
left = 0,
bottom = 0,
right = 0.5,
top = 0.5,
align_to = "full")
ggp
示例文件:
我认为 Alpha 通道 在这里受到尊重。只是inset_element
先画了一个白色的canvas元素。您尝试做的可以说不是插图,更多的是注释。
我认为在这里使用 ggplot2
中的 annotation_custom
更合适(意味着少加载一个包)。
library(ggplot2)
library(png)
img1 <- grid::rasterGrob(readPNG("bg.png"))
img2 <- grid::rasterGrob(readPNG("image1.png"))
ggp <- ggplot(data.frame()) +
geom_point() +
theme_void() +
annotation_custom(img1) +
annotation_custom(img2, xmax = 0.5, ymax = 0.5)
ggp
我想在 ggplot2 图上堆叠 PNG 图像。其中一张 png 有 alpha/transparency 信息,但它被忽略了。
如何在 bg.png 之上添加第二张图片 (image1.png),以便保留透明度并在黄色背景上仅显示黑色文本?
例子
library(ggplot2)
library(png)
library(patchwork)
img1 <- readPNG("bg.png", native = TRUE)
img2 <- readPNG("image1.png", native = TRUE)
ggp <- ggplot(data.frame()) +
geom_point() +
theme_nothing() +
inset_element(p = img1,
left = 0,
bottom = 0,
right = 1,
top = 1,
align_to = "full") +
inset_element(p = img2,
left = 0,
bottom = 0,
right = 0.5,
top = 0.5,
align_to = "full")
ggp
示例文件:
我认为 Alpha 通道 在这里受到尊重。只是inset_element
先画了一个白色的canvas元素。您尝试做的可以说不是插图,更多的是注释。
我认为在这里使用 ggplot2
中的 annotation_custom
更合适(意味着少加载一个包)。
library(ggplot2)
library(png)
img1 <- grid::rasterGrob(readPNG("bg.png"))
img2 <- grid::rasterGrob(readPNG("image1.png"))
ggp <- ggplot(data.frame()) +
geom_point() +
theme_void() +
annotation_custom(img1) +
annotation_custom(img2, xmax = 0.5, ymax = 0.5)
ggp