geom_col绘制美国各州最低工资数据时X轴刻度异常求助
解决geom_col X轴刻度异常的问题
第一步:排查数据异常值
X轴跑到300,大概率是你的最低工资数据列混入了错误值(比如某条记录的工资被误录成300)。先跑两行代码确认:
# 查看工资列的统计信息,快速定位异常值 summary(your_data$min_wage) # 筛选出超过20的异常行 filter(your_data, min_wage > 20)
如果发现异常记录,直接过滤掉:
your_data <- your_data %>% filter(min_wage <= 20)
第二步:修正geom_col的映射与方向
维基百科的最低工资柱状图一般是横向布局(州名在Y轴,工资在X轴),但geom_col默认是纵向(X轴放分类变量,Y轴放数值变量)。如果映射方向搞反却没指定布局方向,就会出现刻度混乱。正确的代码应该是:
library(ggplot2) library(dplyr) ggplot(your_data, aes(y = state, x = min_wage)) + geom_col(orientation = "y", fill = "#0077bb") + # 指定横向柱状图 scale_x_continuous(limits = c(0, 20), breaks = seq(0, 20, 2)) + # 设置X轴范围和刻度 labs(x = "最低工资(美元/小时)", y = "州/特区") + theme_minimal()
为什么geom_point没问题?
geom_point对x/y变量类型的兼容性更强,哪怕你搞反了映射方向,它只会把州名当成离散的x轴刻度,不会生成超大的数值型刻度。但geom_col对布局方向有严格要求,横向布局时必须指定orientation = "y"。
内容的提问来源于stack exchange,提问作者ptr64
相关产品推荐
相关产品推荐

