Remove colored border around ggplot

2020-04-10 02:56发布

问题:

I am adding ggplots to viewports. Both ggplot and viewport has the same background colour. My problem is that I have a white rectangle surrounding my ggplots and I dont seem to be able to find the option to remove it using theme. Any ideas?

library(grid)
library(ggplot2)

Pie_chart <- ggplot(df , aes(x = "", y = prop_1, fill = rank) ) +
  geom_bar(stat="identity", width=2) +
  coord_polar("y", start = 0) + 
  labs(x = NULL, y = NULL, fill = NULL, title = "") + 
  theme(axis.line = element_blank(), 
        axis.text = element_blank(), 
        axis.ticks = element_blank(), 
        legend.position="none")+
  theme(plot.margin = unit(c(0.0, 0.0, 0.0, 0.0), "cm"),
        plot.background = element_rect(fill = "blue"),
        panel.background = element_rect(fill = "blue"))

lower_section_viewport <- viewport(
  layout = grid.layout(nrow = 1, ncol = 2, 
                       widths = unit(c(2, 1), c("null", "null"))), 
  name = "lower_section")

grid.newpage()
pushViewport(lower_section_viewport)
grid.rect(gp = gpar(fill = "blue", col = "blue" ))

pushViewport(viewport(layout.pos.row = 1, layout.pos.col = 2))
print(Pie_chart, vp = current.viewport())
upViewport()

Data:

 > dput(df)
    structure(list(a = structure(1:11, .Label = c("0-Management", 
    "1-Business, finance & administration", "2-Natural and applied sciences", 
    "3-Health occupations", "4-Occupations in education", "5-Art & culture", 
    "6-Sales ans service occupations", "7-Trade & Transport", "8-Agriculture", 
    "9-Manufacturing", "X-Not Identified"), class = "factor"), b = c(75, 
    92, 64, 61, 90, 51, 77, 78, 94, 98, 96), prop = c("9%", "11%", 
    "7%", "7%", "10%", "6%", "9%", "9%", "11%", "11%", "11%"), prop_1 = c(9, 
    11, 7, 7, 10, 6, 9, 9, 11, 11, 11), rank = c("0", "1", "2", "3", 
    "4", "5", "6", "7", "8", "9", "X")), class = "data.frame", row.names = c(NA, 
    -11L))

回答1:

It's the argument colour = NA in theme(plot.backround = ... ) you are looking for.

Pie_chart <- ggplot(df , aes(x = "", y = prop_1, fill = rank) ) +
  geom_bar(stat="identity", width=2) +
  coord_polar("y", start = 0) + 
  labs(x = NULL, y = NULL, fill = NULL, title = "") + 
  theme(axis.line = element_blank(), axis.text = element_blank(), axis.ticks = element_blank(), legend.position="none")+
  theme(plot.margin = unit(c(0.0, 0.0, 0.0, 0.0), "cm"),
        plot.background = element_rect(fill = "blue", 
                                       colour = NA), # here it is
        panel.background = element_rect(fill = "blue"))

...



标签: r ggplot2 r-grid