如何调整 ggplot 图表中网格线的可见性

The*_*kie 4 r ggplot2

下面的代码创建一个散点图,并使用 theme_bw 和背景中的网格线 -

data = mtcars

data %>% 
  select(mpg, disp) %>% 
  ggplot(aes(disp, mpg))+
  geom_point(size = 3)+
  theme_bw()
Run Code Online (Sandbox Code Playgroud)

我还想在图表上添加一些垂直和水平线。然而,从目前的网格线来看,它看起来有点繁忙。有没有办法进一步降低网格线的可见性。我不想完全删除它们。

ste*_*fan 5

这可以通过切换到较浅的颜色或减少用于网格线的颜色的不透明度来实现,这两者都可以通过主题选项来实现panel.grid。下面我展示第二种方法。不幸的element_line是没有alpha参数来设置不透明度,但您可以通过十六进制颜色代码调整它:

  1. 我使用默认的网格线颜色“grey92”,它具有 rgb 值(235、235、235)。

  2. 为了设置不透明度,我使用rgb()它作为第四个参数,将不透明度或 alpha 值减少到 100:

library(ggplot2)
library(dplyr)

data = mtcars

# Reduce the opacity of the grid lines: Default is 255
col_grid <- rgb(235, 235, 235, 100, maxColorValue = 255)

data %>% 
  select(mpg, disp) %>% 
  ggplot(aes(disp, mpg))+
  geom_point(size = 3)+
  theme_bw() +
  theme(panel.grid = element_line(color = col_grid))
Run Code Online (Sandbox Code Playgroud)