消除ggplot主题(panel.background)中的情节和面板之间的差距

时间:2018-08-27 09:13:38

标签: r ggplot2

我的第一篇文章-真可惜!根据建议进行编辑。 下面的图在没有最终的最小值和最大值的情况下可以正常工作,除了它在路径图和边界之间留一个间隙外,我希望它恰好位于地图的边缘。我企图强行边框会产生错误

library(ggplot2)
set.seed(987)
x <- runif(20,0,100)
y <- runif(20,0,100)
df <- data.frame(x,y)
ggplot(df)+
 theme_void()+
 geom_path(aes(x,y))+
 scale_x_continuous(limits=c(10,90))+
 scale_y_continuous(limits=c(10,90))+
 theme(panel.background = element_rect(colour = "black", size=1, fill=NA,
              xmin=10, xmax=90, ymin=10, ymax=90))

Error in element_rect(colour = "black", size = 1, fill = NA, xmin = 10,  : 
           unused arguments (xmin = 10, xmax = 90, ymin = 10, ymax = 90)

1 个答案:

答案 0 :(得分:0)

这是在ylim中定义xlimexpandcoord_cartesian的想法。

ggplot(df)+
  theme_void()+
  geom_path(aes(x,y))+
  coord_cartesian(xlim = c(10,90),
                  ylim = c(10,90),
                  expand = FALSE)+
  theme(panel.background = element_rect(colour = "black",
                                        size = 1,
                                        fill = NA))

enter image description here

这很可能优于

ggplot(df)+
  theme_void()+
  geom_path(aes(x,y))+
  scale_x_continuous(limits = c(10,90),
                     expand = c(0, 0))+
  scale_y_continuous(limits = c(10,90),
                     expand = c(0, 0))+
  theme(panel.background = element_rect(colour = "black",
                                        size = 1,
                                        fill = NA))

enter image description here

通过在scale_x_continuous中设置限制,可以完全删除这些限制之外的数据点,而使用coord_cartesian则看不到它们。