如何更改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 条形图中的条形进行排序