2

我正在尝试创建具有透明背景的绘图的 jpeg。我想在 powerpoint 中使用 jpeg。我无法让透明度发挥作用。当我将 jpeg 插入 ppt 时,它仍然具有白色背景。有我缺少的选项吗?

library(tidyverse)
library(dplyr)
library(gridExtra)
df<-data.frame(x=1:5)
df$y<-df$x**2

pl<-ggplot(df,aes(x=x,y=x)) +
     geom_point()
pl
pl_for_jpeg<-pl+
   theme(axis.text.x = element_blank(),
        axis.text.y = element_blank(),
        axis.ticks = element_blank(),
        plot.margin = unit(c(0,0,0,0),'mm'),
        panel.background = element_rect(fill = "transparent", color=NA),
        panel.grid.major = element_blank(),
        plot.background =  element_rect(fill = "transparent", color=NA),
        
   )

pl_for_jpeg

ggsave("pl.jpeg",pl_for_jpeg,width=10, height = 7.5, units = "in",bg = "transparent")
4

2 回答 2

2

您没有遗漏任何东西,问题在于 jpeg 文件:该格式是为摄影制作的,因此文件通常是方形的,没有背景透明度。更改为另一种光栅文件格式(如.png)或矢量文件(如.svg)应该可以解决问题。

ggsave()中,您只需要更改文件扩展名。或者,在基础 R 中,您可以使用png()tiff()bmp()函数

于 2020-07-17T16:50:00.867 回答
2

这应该是答案:

ggsave("pl.png",pl_for_jpeg,width=10, height = 7.5, units = "in",bg = "transparent")

只需将扩展名更改png为例如,瞧!您将在 ppt 上看到具有透明背景的图形。

在此处输入图像描述

于 2020-07-17T16:40:53.893 回答