获取“scale_fill_grey”函数中使用的十六进制颜色代码

时间:2016-02-23 19:44:06

标签: r ggplot2

我想获取scale_fill_grey函数用于填充以下代码生成的条形图类别的颜色的十六进制代码:

library(ggplot2)

data <- data.frame(
  Meal = factor(c("Breakfast","Lunch","Dinner","Snacks"), 
  levels=c("Breakfast","Lunch","Dinner","Snacks")),
  Cost = c(9.75,13,19,10.20))

ggplot(data=data, aes(x=Meal, y=Cost, fill=Meal)) +
    geom_bar(stat="identity")  +
    scale_fill_grey(start=0.8, end=0.2)

enter image description here

2 个答案:

答案 0 :(得分:6)

scale_fill_grey()使用grey_pal()包中的scales,后者又使用grey.colors()。因此,您可以生成以下四种颜色的比例代码:

grey.colors(4, start = 0.8, end = 0.2)
## [1] "#CCCCCC" "#ABABAB" "#818181" "#333333"

这显示了带有颜色

的图表
image(1:4, 1, matrix(1:4), col = grey.colors(4, start = 0.8, end = 0.2))

enter image description here

答案 1 :(得分:2)

使用ggplot_build()功能:

#assign ggplot to a variable
myplot <- ggplot(data=data, aes(x=Meal, y=Cost, fill=Meal)) +
  geom_bar(stat="identity")  +
  scale_fill_grey(start=0.8, end=0.2)

#get build
myplotBuild <- ggplot_build(myplot)

#see colours
myplotBuild$data

# [[1]]
#      fill x     y PANEL group ymin  ymax xmin xmax colour size linetype alpha
# 1 #CCCCCC 1  9.75     1     1    0  9.75 0.55 1.45     NA  0.5        1    NA
# 2 #ABABAB 2 13.00     1     2    0 13.00 1.55 2.45     NA  0.5        1    NA
# 3 #818181 3 19.00     1     3    0 19.00 2.55 3.45     NA  0.5        1    NA
# 4 #333333 4 10.20     1     4    0 10.20 3.55 4.45     NA  0.5        1    NA