ggplot2绘制柱状图时X轴显示百位数值而非十位的问题求助
解决ggplot2柱状图X轴入睡时长显示为百位数值的问题
你的问题核心是X轴数值的单位与预期不符,大概率是以下原因导致:
数据存储单位错误
你的TimeToFallAsleep列实际存储的是秒数,但你误以为是分钟。比如10分钟等于600秒,反映在图表上就会显示成600这种百位数值,和你生成的柱状图特征匹配。数据录入倍数错误
录入数据时不小心把分钟值乘以了10(比如把10分钟写成100),不过这种情况的概率比单位错误低。
验证与解决步骤:
- 先确认数据真实值:在R中运行
head(daily_sleep_diff$TimeToFallAsleep),查看前几行的具体数值,判断是不是秒数或者被错误放大。 - 如果是秒转分钟,直接在绘图代码里转换:
ggplot(data=daily_sleep_diff, aes(x=TimeToFallAsleep/60)) + geom_bar() + xlab("入睡时长(分钟)")
- 或者提前处理数据列(代码更清晰):
# 新增分钟单位的列 daily_sleep_diff$SleepLatency_min <- daily_sleep_diff$TimeToFallAsleep / 60 # 使用新列绘制柱状图 ggplot(data=daily_sleep_diff, aes(x=SleepLatency_min)) + geom_bar() + xlab("入睡时长(分钟)")
内容的提问来源于stack exchange,提问作者RoniC
相关产品推荐
相关产品推荐

