Вы можете использовать следующий синтаксис для создания прозрачного фона на графике в 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. seed (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. seed (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