使用ggplot2绘制物种百分比堆叠柱状图遇图例无图问题求助
解决堆叠柱状图仅显示图例无图形的问题
问题原因分析
你的数据中taxRank列存在前后空格不一致的情况(部分值带前置空格,部分不带),导致ggplot将其识别为多个不同的x轴类别,最终柱子因过于分散、狭窄而无法正常显示;另外也需确认percentage列是否为数值型,避免因类型错误导致图形无法生成。
解决方案
- 清洗
taxRank列,统一格式
使用trimws()函数去除字符串前后的空格,确保所有taxRank值一致:
species.kreport$taxRank <- trimws(species.kreport$taxRank)
- 确认
percentage列类型
检查并转换为数值型(若当前为字符型):
# 检查数据类型 str(species.kreport$percentage) # 转换为数值型(如果需要) species.kreport$percentage <- as.numeric(species.kreport$percentage)
- 调整绘图代码,优化柱子显示
添加width参数设置柱子宽度,避免因单类别导致柱子过窄:
library(ggplot2) ggplot(species.kreport, aes(x = taxRank, y = percentage, fill = sciName)) + geom_bar(position = "stack", stat = "identity", width = 0.5) + labs(title = "物种百分比堆叠柱状图", x = "分类等级", y = "百分比") # 可选:添加自定义标签
运行以上步骤后,即可生成正常的堆叠柱状图,显示所有物种的百分比堆叠效果。
内容的提问来源于stack exchange,提问作者Mohamed Aziz Hadj Nasr
相关产品推荐
相关产品推荐

