【问题标题】:Extract ggplot2 color code information generated from `scale_fill_gradient`提取 `scale_fill_gradient` 生成的 ggplot2 颜色代码信息
【发布时间】:2021-07-13 14:04:17
【问题描述】:

我认为这个问题实际上从未在 Stack Overflow 上得到回答this answer 提供了一种解决方法,但我能找到的就是这些,而且这个问题已经存在 10 多年了)。

我想提取下面显示的ggplot2 代码中使用的scale_fill_gradient(low = "skyblue", high = "dodgerblue4") 代码生成的颜色代码信息。

ggplot(mtcars, aes(wt*1000, mpg)) +
  geom_point(size = 4, aes(colour = hp)) +
  xlab("Weight (pounds)") + ylab("Miles per gallon (MPG)") + labs(color='Horse power') +
  scale_x_continuous(limits = c(1000, 6000), 
                     breaks = c(seq(1000,6000,1000)), 
                     labels = c("1,000", "2,000", "3,000", "4,000", "5,000", "6,000")) + 
  scale_fill_gradient(low = "skyblue", high = "dodgerblue4") +
  theme_classic()

理想情况下,我想为图中的每个点生成一个数据集,并为所有标准信息(wtmpghp)的列生成一个数据集,然后再生成个人的颜色代码在情节上可以看到的点。这将对应于hp(“马力”)变量,如下所示,并且(可能)由scale_fill_gradient 函数生成。这将允许我重现绘图上某个点的颜色,其 hp 得分为 150。

提前感谢您的任何意见。

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    您可以使用 layer_data() 从图中提取 geom 层使用的任何数据,包括颜色代码:

    library(ggplot2)
    
    ggplot(mtcars, aes(wt*1000, mpg)) +
      geom_point(size = 4, aes(colour = hp)) +
      xlab("Weight (pounds)") + ylab("Miles per gallon (MPG)") + labs(color='Horse power') +
      scale_x_continuous(limits = c(1000, 6000), 
                         breaks = c(seq(1000,6000,1000)), 
                         labels = c("1,000", "2,000", "3,000", "4,000", "5,000", "6,000")) + 
      scale_fill_gradient(low = "skyblue", high = "dodgerblue4") +
      theme_classic()
    

    ld <- layer_data(last_plot())
    (head(ld))
    #>    colour    x    y PANEL group shape size fill alpha stroke
    #> 1 #204464 2620 21.0     1    -1    19    4   NA    NA    0.5
    #> 2 #204464 2875 21.0     1    -1    19    4   NA    NA    0.5
    #> 3 #1C3C5A 2320 22.8     1    -1    19    4   NA    NA    0.5
    #> 4 #204464 3215 21.4     1    -1    19    4   NA    NA    0.5
    #> 5 #2E618C 3440 18.7     1    -1    19    4   NA    NA    0.5
    #> 6 #1E4261 3460 18.1     1    -1    19    4   NA    NA    0.5
    

    reprex package (v1.0.0) 于 2021 年 7 月 13 日创建

    【讨论】:

    猜你喜欢
    • 2011-05-09
    • 1970-01-01
    • 2016-02-03
    • 2012-03-08
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    • 2015-06-21
    • 2012-08-11
    相关资源
    最近更新 更多