首页 > 解决方案 > 如何调整ggplot图表中网格线的可见性

问题描述

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

data = mtcars

data %>% 
  select(mpg, disp) %>% 
  ggplot(aes(disp, mpg))+
  geom_point(size = 3)+
  theme_bw()

我还想在图表上包含一些垂直和水平线。但是,对于当前的网格线,它看起来有点忙。有没有办法进一步降低网格线的可见性。我不想完全删除它们。

标签: rggplot2

解决方案


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

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

  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))


推荐阅读