0

我有一个 ggplot 间距问题.. 可能只是不知道我正在寻找的确切主题元素。当我制作一个 ggplot 并删除所有轴标记,然后将所有边距设为 0 时,面板和绘图外部之间仍有一点空间,这使我的绘图不对称。我该如何删除这个?

data.frame(x=1,y=1) %>%
  
  ggplot(aes(x=x,y=y))+
  geom_point()+
  ggthemes::theme_few() +
  labs(x=NULL,y=NULL)+
  
  theme(axis.title = element_blank(),
        axis.text = element_blank(),
        axis.ticks = element_blank(),
        axis.line = element_blank(),
        panel.background = element_rect(fill="powderblue",color="black",size=2),
        plot.margin = margin(0,0,0,0,"pt"))

看到左边和底部的一点点空白。此外,如果我们通过添加将(不存在的,我认为不存在的)x-scale 移动到顶部 + scale_x_continuous(position="top"),空间就会移动到那里。因此,默认情况下必须有一些比例标记的残余物正在创建这个空间。有没有办法删除它?

谢谢!

4

2 回答 2

2

想通了-即使您将axis.ticks设置为element_blank(),您仍然需要添加axis.ticks.length = unit(0, "pt"),以删除它们将占用的空间,然后消除绘图周围的额外空间。

于 2021-04-20T14:25:51.243 回答
0

我将您的基本示例输出到文件中,并且不相信有任何额外的边界。我认为您可能看到的是 RStudio GUI 的一部分。

library(ggplot2)
library(ggthemes)
library(magrittr)

png()
data.frame(x=1,y=1) %>%
  
  ggplot(aes(x=x,y=y))+
  geom_point()+
  ggthemes::theme_few() +
  labs(x=NULL,y=NULL)+
  
  theme(axis.title = element_blank(),
        axis.text = element_blank(),
        axis.ticks = element_blank(),
        axis.line = element_blank(),
        panel.background = element_rect(fill="powderblue",color="black",size=2),
        plot.margin = margin(0,0,0,0,"pt"))

dev.off()
于 2021-04-20T14:12:32.423 回答