ggplot绘制y轴数值异常?使用mpg数据集调用geom_col()遇问题
问题原因与解释
y轴数值异常的原因:问题出在
geom_col()的默认逻辑——它会把同一个x值对应的所有y值累加求和。你的代码中x = hwy(高速油耗)存在大量重复取值,每个hwy值对应多个不同的cyl(气缸数)样本,geom_col()直接将同一hwy分组下的所有cyl数值相加,最终y轴显示的是每个hwy对应的气缸数总和,而非单个样本的气缸数,所以看起来数值异常。是否存在统计变换:有。虽然
geom_col()默认参数是stat="identity"(直接使用输入的y值),但当x存在重复观测时,它会自动按x分组对y值执行求和的统计变换。
修正方案
如果想展示每个样本的hwy与cyl对应关系,改用散点图:
ggplot(mpg, aes(x = hwy, y = cyl)) + geom_point()
如果想统计每个hwy下不同气缸数的样本数量,使用分组柱状图:
ggplot(mpg, aes(x = hwy, fill = factor(cyl))) + geom_bar(position = "dodge")
内容的提问来源于stack exchange,提问作者Laura
相关产品推荐
相关产品推荐

