You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ggplot绘图y轴数值异常排查及合适可视化方案咨询

问题:年龄与工资关系可视化异常及优化方案

需求说明

我想要绘制数据集中个体的工资(变量tpens)与年龄(变量eta)的关系,设置x轴为年龄,y轴为工资。

数据集样本

> head(final2, 20)
   nquest nord sex anasc ireg eta staciv studio tpens   PPA pens_real anno_lav retrib
1     173    1   1  1948   18  64      3      5  2500  89.3 27.995521     1971      0
2     375    1   2  1925   16  87      4      2   409  89.3  4.580067     1960      1
3     629    1   1  1939    5  73      4      3  1188 107.2 11.082090     1954      1
4     632    1   1  1950    5  62      1      3  1320 107.2 12.313433     1972      0
5     633    1   2  1934    5  78      4      2   350 107.2  3.264925     1952      1
6    1238    1   1  1937   15  75      4      3  1000  89.3 11.198208     1977      0
7    7886    1   1  1950    9  62      1      5  2000 106.7 18.744142     1973      0
8   11972    2   1  1938   17  74      1      2   750  89.3  8.398656     1962      1
9   20174    1   1  1941    8  71      1      5  2000 107.2 18.656716     1962      1
10  20174    2   2  1942    8  70      1      3   132 107.2  1.231343     1957      1
11  20223    1   2  1938    3  74      1      5   800 109.6  7.299270     1956      1
12  20223    2   1  1939    3  73      1      4   980 109.6  8.941606     1952      1
13  20711    2   1  1944    4  68      1      2  1900 107.2 17.723881     1958      1
14  20837    1   1  1931    8  81      1      4  1600 107.2 14.925373     1949      1
15  20837    2   2  1928    8  84      1      2   430 107.2  4.011194     1944      1
16  21461    1   2  1918    5  94      4      2   600 107.2  5.597015     1929      1
17  22173    1   1  1938   15  74      1      2  1200  89.3 13.437850     1953      1
18  22208    1   2  1935    5  77      4      2   700 107.2  6.529851     1950      1
19  22222    1   1  1927    5  85      4      2  1100 107.2 10.261194     1941      1
20  22276    1   1  1949    8  63      2      5  1170 107.2 10.914179     1968      0

tpens统计值(筛选retrib == 1)

> summary(subset(final2$tpens, final$retrib == 1))
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    109     650     970    1028    1276    4700 

问题描述

我运行了以下代码绘制年龄与工资的关系:

final2 %>%
  filter( retrib == 1 ) %>%
  ggplot() + 
  geom_col( aes( x = eta, y = tpens), fill = "red", alpha = 0.5  )+
  theme_classic()+
  scale_x_continuous(breaks = seq(30,120, by=1)) 

但生成的图表中y轴出现了200000、150000等远超tpens最大值4700的数值,请问该异常的原因是什么?我是否使用了错误的绘图类型?有没有更合适的可视化方式?

优化更新

经调整后,改用箱线图按年龄分组展示,效果更好,实现代码如下:

final %>%
  mutate(group = case_when(
    (eta <= 50) ~ "<50",
    (eta>50 & eta<=60) ~ "50~70",
    (eta>60 & eta<=70) ~ "60~70",
    (eta>70 & eta<=80) ~ "70~80",
    (eta>80) ~ " >80")) %>%
  ggplot(aes( x = as.factor(group), y = tpens )) + 
  geom_boxplot(fill="slateblue", alpha=0.2) +
  theme_classic()

为了对箱线图的分组进行自定义排序,使用以下代码:

final %>%
  mutate(group = case_when(
    (eta <= 50) ~ "<50",
    (eta>50 & eta<=60) ~ "50~70",
    (eta>60 & eta<=70) ~ "60~70",
    (eta>70 & eta<=80) ~ "70~80",
    (eta>80) ~ " >80")) %>%
  ggplot(aes( x = factor(group, levels=c("<50", "50~70", "60~70", "70~80", " >80")), y = tpens ))+
  geom_boxplot(fill="slateblue", alpha=0.2) +
  theme_classic()

内容的提问来源于stack exchange,提问作者io_boh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 23:02:06