ggplot绘制堆叠柱状图报错:Unknown colour name: SH求助
解决ggplot堆叠柱状图"Unknown colour name: SH"错误的建议
可能的原因及对应解法
错误将数据列名当作颜色值使用
如果你直接在geom_bar的fill/colour参数里写了SH这类数据列名,ggplot会把它识别成颜色名称,但SH不是默认的合法颜色名(比如red、blue这类),就会报错。
正确做法是先把宽格式数据转成长格式(ggplot更适配长数据结构),再统一映射填充色:# 加载tidyr包处理数据格式 library(tidyr) # 转换为长格式:将UM/SM/UL/SL/UH/SH转为分类列,对应值转为数值列 long_data <- pivot_longer(your_data, cols = c(UM, SM, UL, SL, UH, SH), names_to = "group", values_to = "count") # 绘制堆叠柱状图 ggplot(long_data, aes(x = PA, y = count, fill = group)) + geom_bar(stat = "identity")转换后
group列包含所有待堆叠的类别,ggplot会自动为每个类别分配颜色,不会把类别名误判为颜色值。自定义颜色时参数使用错误
如果要给每个类别指定自定义颜色,要在scale_fill_manual()中关联类别和颜色值,而非直接在geom_bar里写类别名:ggplot(long_data, aes(x = PA, y = count, fill = group)) + geom_bar(stat = "identity") + scale_fill_manual(values = c( UM = "#E64B35", SM = "#4DBBD5", UL = "#00A087", SL = "#3C5488", UH = "#F39B7F", SH = "#8491B4" ))这里
SH是类别标识,对应后面的十六进制颜色值,不会触发颜色名称错误。参数或名称拼写失误
检查代码里是否把fill(填充颜色)误写成colour(描边颜色),或者类别名有没有拼写错误,比如把SH写成了其他单词,导致ggplot误将其识别为颜色名。
内容的提问来源于stack exchange,提问作者fis323
相关产品推荐
相关产品推荐

