如何在ggplot2中使用透明背景
您可以使用以下语法在 ggplot2 的绘图中创建透明背景:
p+ theme( panel. background = element_rect(fill=' transparent '), #transparent panel bg plot. background = element_rect(fill=' transparent ', color= NA ), #transparent plot bg panel. grid . major = element_blank(), #remove major gridlines panel. grid . minor = element_blank(), #remove minor gridlines legend. background = element_rect(fill=' transparent '), #transparent legend bg legend. box . background = element_rect(fill=' transparent ') #transparent legend panel )
如果您决定使用ggsave()导出绘图,请务必指定背景应该是透明的:
ggsave(' myplot.png ' , p, bg = ' transparent ' )
以下示例展示了如何在实践中使用此语法。
示例:在 ggplot2 中使用透明背景
以下代码展示了如何在 ggplot2 中创建简单的分组箱线图:
library (ggplot2) #make this example reproducible set. seeds (1) #create dataset data <- data. frame (team=rep(c(' A ', ' B ', ' C '), each= 50 ), program=rep(c(' low ', ' high '), each= 25 ), values=seq(1:150)+sample(1:100, 150, replace= TRUE )) #create boxplot ggplot(data, aes (x=team, y=values, fill=program)) + geom_boxplot()
我们可以使用以下代码为绘图创建透明背景:
library (ggplot2) #make this example reproducible set. seeds (1) #create dataset data <- data. frame (team=rep(c(' A ', ' B ', ' C '), each= 50 ), program=rep(c(' low ', ' high '), each= 25 ), values=seq(1:150)+sample(1:100, 150, replace= TRUE )) #create boxplot p <- ggplot(data, aes (x=team, y=values, fill=program)) + geom_boxplot() + theme( panel. background = element_rect(fill=' transparent '), plot. background = element_rect(fill=' transparent ', color= NA ), panel. grid . major = element_blank(), panel. grid . minor = element_blank(), legend. background = element_rect(fill=' transparent '), legend. box . background = element_rect(fill=' transparent ') ) #display boxplot p
然后我们可以将此路径导出到 PNG 文件,并指定导出图像中的背景必须是透明的:
ggsave(' grouped_boxplot.png ' , p, bg = ' transparent ' )
如果我在计算机上打开此导出的文件,我会看到背景是透明的:
其他资源
如何更改ggplot2中的字体大小
如何删除ggplot2中的图例
如何删除ggplot2中的网格线