ggplot2默认蓝色和灰色 - 什么'蓝色'和'灰色'他们是具体的吗?

时间:2018-06-12 18:11:52

标签: r ggplot2

我正在创建默认的平滑条件方式图。

library(ggplot2)
ggplot(mpg, aes(displ, hwy)) + geom_point() + geom_smooth()

默认蓝色线条颜色是什么?线周围置信区间的默认深灰色背景是什么?你是怎么想出来的?

我想在其他一些情节中使用这两种确切的颜色,以保持一致。

1 个答案:

答案 0 :(得分:5)

您可以在ggplot_build对象上使用ggplot来检查其组件。从此函数返回的ggplot_built对象包含一个名为data的列表,其中包含用于构建每个geom的内部数据。在这种情况下,geom_smooth是第二个geom,因此可以使用ggplot_build(p)$data[[2]]访问它。

library(tidyverse)

p <- ggplot(mpg, aes(x = displ, y = hwy)) +
  geom_point() +
  geom_smooth(method = "lm")

ggplot_build(p)$data[[2]] %>% head()
#>          x        y     ymin     ymax        se PANEL group  colour   fill
#> 1 1.600000 30.04871 29.17768 30.91974 0.4420916     1    -1 #3366FF grey60
#> 2 1.668354 29.80738 28.95779 30.65696 0.4312076     1    -1 #3366FF grey60
#> 3 1.736709 29.56605 28.73763 30.39446 0.4204623     1    -1 #3366FF grey60
#> 4 1.805063 29.32471 28.51718 30.13225 0.4098667     1    -1 #3366FF grey60
#> 5 1.873418 29.08338 28.29640 29.87036 0.3994326     1    -1 #3366FF grey60
#> 6 1.941772 28.84205 28.07529 29.60882 0.3891730     1    -1 #3366FF grey60
#>   size linetype weight alpha
#> 1    1        1      1   0.4
#> 2    1        1      1   0.4
#> 3    1        1      1   0.4
#> 4    1        1      1   0.4
#> 5    1        1      1   0.4
#> 6    1        1      1   0.4

正如您所看到的,用于构建geom_smooth的默认值是&#34;#3366ff&#34;并填写&#34; grey60&#34;。

这里是构建类似情节的一个非常懒惰的例子 - 显然我没有花时间计算实际的标准误差区域,只是做一条粗灰线来说明从中检索的颜色和alpha建成的情节。

mod_coef <- lm(hwy ~ displ, mpg)$coefficients

ggplot(mpg, aes(x = displ, y = hwy)) +
  geom_point() +
  geom_abline(intercept = mod_coef[1], slope = mod_coef[2], color = "grey60", alpha = 0.4, size = 6) +
  geom_abline(intercept = mod_coef[1], slope = mod_coef[2], color = "#3366FF", size = 1)