如何更改ggplot2中堆积条形图的条形颜色


您可以使用以下基本语法来更改 ggplot2 中堆积条形图中条形的颜色:

 #create stacked bar chart
ggplot(df, aes(x=x_var, y=y_var, fill=fill_var)) + 
  geom_bar(position=' stack ', stat=' identity ') +
  scale_fill_manual(values=c(' red ', ' purple ', ' pink ', ...))

以下示例展示了如何在实践中使用此语法。

示例:更改 ggplot2 中堆积条形图中条形的颜色

假设我们在 R 中有以下数据框,显示不同篮球运动员的得分:

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'),
                 position=c('G', 'F', 'C', 'G', 'F', 'C', 'G', 'F', 'C'),
                 points=c(22, 12, 10, 30, 12, 17, 28, 23, 20))

#view data frame
df

  team position points
1 AG 22
2 AF12
3 AC 10
4 BG 30
5 BF 12
6 BC 17
7 GC 28
8 CF 23
9 CC 20

如果我们创建一个堆积条形图来可视化每支球队球员的得分,ggplot2 将使用一组默认颜色来填充条形:

 library (ggplot2)

#create stacked bar chart
ggplot(df, aes(x=team, y=points, fill=position)) + 
  geom_bar(position=' stack ', stat=' identity ') 

但是,我们可以使用scale_fill_manual()参数来指定ggplot2应该为条形图使用的确切颜色:

 library (ggplot2)

#create stacked bar chart with custom colors
ggplot(df, aes(x=team, y=points, fill=position)) + 
  geom_bar(position=' stack ', stat=' identity ') +
  scale_fill_manual(values=c(' red ', ' purple ', ' pink ')) 

现在,条形图具有我们在scale_fill_manual()函数中指定的确切颜色(按从上到下的顺序)。

另请注意,我们可以在scale_fill_manual()函数中使用十六进制颜色代码:

 library (ggplot2)

#create stacked bar chart with custom hex color codes
ggplot(df, aes(x=team, y=points, fill=position)) + 
  geom_bar(position=' stack ', stat=' identity ') +
  scale_fill_manual(values=c(' #2596BE ', ' #8225BE ', ' #D4C443 ')) 

现在,条形图具有我们指定的十六进制颜色代码。

其他资源

以下教程解释了如何在 ggplot2 中执行其他常见任务:

如何在ggplot2中重新排列堆积条形图中的条形
如何在 ggplot2 中创建具有多个变量的条形图
如何对 ggplot2 条形图中的条形进行排序

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注