如何在不使用 theme_void() 的情况下删除 legend/grid?

How do I remove legend/grid without using theme_void()?

这里我有 theme_light() 但在情节中我仍然有 x/y 轴和图例 + 网格。我想删除那些并且只有我的浅色背景 + plot 'pic'。当我使用 theme_void -> 它删除了图例,但背景是无效的。知道如何解决这个问题,让我只有白色背景和情节吗?

pic <- ggplot(data = art_dat, mapping = aes(x = x, y = y, group = path_id,
                                                color = step_id)
              ) + 
  geom_path(
            size = .9,
            alpha = 1000, #transparency of the lines
            show.legend = FALSE
                        
            ) +
            coord_equal() + 
            theme_light() + 
            scale_color_scico(palette = "berlin")          

编辑:在您发布图片后进行了更新。您没有图例,因此不需要删除它。你想删除轴线、刻度、文本、标题和可能(?)面板网格线:

pic <- ggplot(data = art_dat, mapping = aes(x = x, y = y, group = path_id,
                                                color = step_id)
              ) + 
  geom_path(
            size = .9,
            alpha = 1000, #transparency of the lines
            show.legend = FALSE
                        
            ) +
            coord_equal() + 
            theme_light() + 
            scale_color_scico(palette = "berlin") +
                theme(
        axis.line = element_blank(), 
        axis.text = element_blank(),
        axis.ticks = element_blank(),
        axis.title = element_blank(),
        panel.grid.major = element_blank(), # optional - remove gridlines
        panel.grid.minor = element_blank() # optional - remove gridlines
    )

如果对theme void做一些调整,就可以去掉图例了。此外,您可以使用 plot.background 参数将图例设为白色。在下面的示例中,我将其设为红色以表明没有剩余边距等。有一排白色像素,但我不知道该怎么做。

library(ggplot2)

p <- ggplot(mpg, aes(displ, hwy, colour = cyl)) +
  geom_point()

p + theme_void() +
  theme(
    legend.position = "none",
    plot.background = element_rect(fill = "red", colour = NA)
  )

reprex package (v2.0.1)

创建于 2022-01-18