【问题标题】:Changing the colour of both variables and categories in ggplot2更改 ggplot2 中变量和类别的颜色
【发布时间】:2012-03-16 14:38:17
【问题描述】:

我想创建一个堆积条形图,其中不仅变量有唯一的颜色,还有类别

a = c("A","A","B","B","C","C","D","D")
b = c("inclusion","exclusion","inclusion","exclusion","inclusion","exclusion","inclusion","exclusion")
c = c(60,20,20,80,50,55,25,20)
dat = data.frame(category=a, variable=b, value=c)
dat

category  variable value
1        A inclusion    60
2        A exclusion    20
3        B inclusion    20
4        B exclusion    80
5        C inclusion    50
6        C exclusion    55
7        D inclusion    25
8        D exclusion    20

可以很容易地创建具有不同颜色的情节:

colors <- c("#9ECAE1","#F03B20")
ggplot(dat, aes(category, value, fill = variable)) +
geom_bar()+
scale_fill_manual(values = colors)

问题是如何手动更改类别的颜色?任何帮助将不胜感激。

编辑:只是为了清除它,最终图应该有 8 种不同的颜色:每对类别/变量将手动分配不同的颜色。

http://i.stack.imgur.com/G9uKt.png

【问题讨论】:

  • 所以你的目标是一个有 4 个条形图,8 个段,每个段都有不同的颜色(即 8 种不同的颜色)?
  • 16 种不同的颜色,如果可能的话 - 我没有说清楚:对类别/变量会有一个。
  • 我今天早上肯定没有喝足够的咖啡,因为它似乎只有 8 种颜色。 (4 个类别 x 2 个变量 = 8 个组合)
  • 你喝了足够的咖啡,但我没有(真实的故事,它是 8 种颜色(= 行数)。我的错。

标签: r plot ggplot2 stacked


【解决方案1】:

好的,在这种情况下,您只需为每个唯一组合创建一个变量(在这种情况下,每行一个,但将两个变量粘贴在一起更通用;您也可以使用 interaction):

dat$grp <- paste(dat$category,dat$variable)

ggplot(dat, aes(category, value, fill = grp)) +
    geom_bar()+
    scale_fill_manual(values = brewer.pal(8,"Reds"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多