ggplot2 polar_coord删除背景边框网格

时间:2018-04-24 15:31:13

标签: r ggplot2

我找不到使用ggplot2去除coord_polar图形的黑色边框的方法。 基于此post,我尝试了这个,但它不起作用。

有关如何移除网格并具有统一颜色背景的任何建议吗?

library(ggplot2)
a <- seq(1,20)
b <- a^0.25
df <- as.data.frame(cbind(a,b))

gg1 = ggplot(df, aes(x = a, y = b, colour = a)) + 
  coord_polar(start = 1) + 
  geom_bar(stat = 'identity') +
  theme_tufte() + 
  theme(plot.background=element_rect(fill="floralwhite"), panel.border = 
element_blank()) +
  theme(legend.position="bottom") 

grid:::grid.rect(gp=gpar(fill="floralwhite", col="floralwhite"))
ggplot2:::print.ggplot(gg1, newpage=FALSE)

enter image description here

2 个答案:

答案 0 :(得分:2)

安装cowplot包并使用panel_border()主题并设置remove = true。希望这有用!

library(ggplot2)
library(cowplot)
a <- seq(1,20)
b <- a^0.25
df <- as.data.frame(cbind(a,b))

gg1 = ggplot(df, aes(x = a, y = b, colour = a)) + 
  coord_polar(start = 1) + 
  geom_bar(stat = 'identity') +
  theme_tufte() + 
  theme(plot.background=element_rect(fill="floralwhite") +
  theme(legend.position="bottom")+
  panel_border(remove = TRUE))

grid:::grid.rect(gp=gpar(fill="floralwhite", col="floralwhite"))
ggplot2:::print.ggplot(gg1, newpage=FALSE)

答案 1 :(得分:2)

黑线由plot.background元素绘制。您需要将其颜色设置为NA以删除该行:

gg1 <- ggplot(df, aes(x = a, y = b, colour = a)) + 
  coord_polar(start = 1) + 
  geom_bar(stat = 'identity') +
  theme_tufte() + 
  theme(plot.background = element_rect(fill="floralwhite", color = NA),
        legend.position = "bottom") 

grid:::grid.rect(gp = gpar(fill="floralwhite", col="floralwhite"))
ggplot2:::print.ggplot(gg1, newpage=FALSE)

ASP.NET Core Configuration documentation

请注意,如果您不想使用非导出的ggplot2函数(例如print.ggplot())修复背景图,则可以使用来自cowplot的ggdraw()来实现相同的效果:< / p>

cowplot::ggdraw(gg1) +
  theme(plot.background = element_rect(fill="floralwhite", color = NA))

(结果与之前完全相同。)