ggplot绘制Bellabeat数据集柱状图:如何设置柱子为不同纯色?
解决ggplot柱状图同色系深浅问题
问题根源在于ActivityDateWeekly的变量类型:如果它是日期/连续型变量,ggplot默认会为连续型的fill参数分配渐变色系,导致柱子只有同色系深浅变化。要实现不同纯色,需要将该变量转为离散型(因子)。
方案1:绘图时直接转换变量类型
修改代码,用factor()包裹fill参数里的ActivityDateWeekly:
ggplot(data=daily_activity_summary)+ geom_col(mapping = aes(x=ActivityDateWeekly, y=Average_Total_Steps, fill=factor(ActivityDateWeekly)))
方案2:提前转换数据集变量类型
先调整数据集里的变量类型,再进行绘图:
# 将日期变量转为因子 daily_activity_summary$ActivityDateWeekly <- factor(daily_activity_summary$ActivityDateWeekly) # 执行绘图 ggplot(data=daily_activity_summary)+ geom_col(mapping = aes(x=ActivityDateWeekly, y=Average_Total_Steps, fill=ActivityDateWeekly))
可选:自定义纯色配色
如果需要指定特定颜色,可通过scale_fill_manual()手动设置:
ggplot(data=daily_activity_summary)+ geom_col(mapping = aes(x=ActivityDateWeekly, y=Average_Total_Steps, fill=factor(ActivityDateWeekly)))+ # 根据类别数量调整颜色列表 scale_fill_manual(values = c("#FF0000", "#0000FF", "#008000", "#FFA500", "#800080"))
内容的提问来源于stack exchange,提问作者Panos
相关产品推荐
相关产品推荐

