Как сделать графику с прозрачным фоном в R с помощью ggplot2?
Мне нужно вывести графику ggplot2 из R в PNG файлы с прозрачным фоном. Все в порядке с основной графикой R, но нет прозрачности с ggplot2:
d <- rnorm(100) #generating random data
#this returns transparent png
png('tr_tst1.png',width=300,height=300,units="px",bg = "transparent")
boxplot(d)
dev.off()
df <- data.frame(y=d,x=1)
p <- ggplot(df) + stat_boxplot(aes(x = x,y=y))
p <- p + opts(
panel.background = theme_rect(fill = "transparent",colour = NA), # or theme_blank()
panel.grid.minor = theme_blank(),
panel.grid.major = theme_blank()
)
#returns white background
png('tr_tst2.png',width=300,height=300,units="px",bg = "transparent")
p
dev.off()
есть ли способ получить прозрачный фон с ggplot2?
2 ответов:
есть еще и
plot.backgroundопция в дополнение кpanel.background:df <- data.frame(y=d,x=1) p <- ggplot(df) + stat_boxplot(aes(x = x,y=y)) p <- p + opts( panel.background = theme_rect(fill = "transparent",colour = NA), # or theme_blank() panel.grid.minor = theme_blank(), panel.grid.major = theme_blank(), plot.background = theme_rect(fill = "transparent",colour = NA) ) #returns white background png('tr_tst2.png',width=300,height=300,units="px",bg = "transparent") print(p) dev.off()по какой-то причине загруженное изображение отображается иначе, чем на моем компьютере, поэтому я его опустил. Но для меня я получаю сюжет с полностью серым фоном, за исключением коробочной части boxplot, которая все еще белая. Это можно изменить, используя эстетику заполнения в boxplot geom, я считаю.
Edit
ggplot2 С тех пор обновлено и то
opts()функция устарела. В настоящее время вы будете использоватьtheme()вместоopts()иelement_rect()вместоtheme_rect()и т. д.
Comments