预计阅读

matplotlib 绘制分组折线图





本文用 matplotlib 绘制一幅分组折线图,所用数据源:国家统计局统计年鉴 https://www.stats.gov.cn/sj/ndsj/2025/indexch.htm 。想要按私营单位与非私营单位分组展示2010-2024年房价与税前人均年收入的比值的变化趋势,即一般地,一个人需要多少年不吃不喝才能攒够一笔城里买房的钱。

三个数据分别是:城镇私营和非私营单位就业人员平均工资(元) (数据在统计年鉴 2025 中的位置为 4-13,这是人均年收入且为税前收入);新建商品房(住宅)平均销售价格(元/平米)(数据在统计年鉴2025中的位置为 19-1,这是房地产开发企业主要指标之一)。商品房平均销售价格由报告期内新建商品房销售额除以销售面积计算而成。不同时期的商品房平均销售价格可能会受商品房区域、房屋类型等各种因素的影响。

import pandas as pd
df = pd.DataFrame(
    {
        "年份": [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024],
        "私营单位": [20759, 24556, 28752,32706,36390,39589,42833,45761, 49575,53604,57727, 62884, 65237, 68340, 69476],
        "非私营单位": [36539, 41799, 46769, 51483, 56360, 62029, 67569, 74318, 82413, 90501, 97379, 106837, 114029, 120698, 124110],
        "住宅销售价格": [4725, 4993, 5430, 5850, 5933, 6473, 7203, 7614, 8553, 9287, 9980, 10825, 10608, 10864, 10419],
    }
)
from great_tables import GT
(GT(df))
年份 私营单位 非私营单位 住宅销售价格
2010 20759 36539 4725
2011 24556 41799 4993
2012 28752 46769 5430
2013 32706 51483 5850
2014 36390 56360 5933
2015 39589 62029 6473
2016 42833 67569 7203
2017 45761 74318 7614
2018 49575 82413 8553
2019 53604 90501 9287
2020 57727 97379 9980
2021 62884 106837 10825
2022 65237 114029 10608
2023 68340 120698 10864
2024 69476 124110 10419
import matplotlib.pyplot as plt
# 设置中文字体
import matplotlib.font_manager as fm
fontP = fm.FontProperties()
fontP.set_family('Noto Serif CJK SC')
fontP.set_size(14)

plt.figure(figsize=(8, 5))
plt.plot(df["年份"], 90*df["住宅销售价格"]/df["私营单位"], color='blue', label="私营单位")
plt.plot(df["年份"], 90*df["住宅销售价格"]/df["非私营单位"], color='red', label="非私营单位")
plt.title('房价与税前年收入的比值关系', fontproperties=fontP)
plt.xlabel('年份', fontproperties=fontP)
plt.ylabel('奋斗时间(年)', fontproperties=fontP)
# 添加图例并设置中文字体
plt.legend(prop=fontP)
# 背景网格线
plt.grid(linestyle="--")
plt.show()

一个三口之家,按人均 30 平米的基本住房需求算,需要一套 90 平米的房子。购买这样一套房子需要多少钱,又需要多少年不吃不喝才能攒够?从图中来看,国家一直在遏制房价(2016年房价飞涨,这个比值不降反升。),希望民众能够尽快买得起房。 从最新的 2024 年的数据来看,在私营单位工作的人,需要 13.5 年,而在非私营单位工作的人只需要 7.56 年。假设这个个人年收入,扣除各类基本支出,还能攒下一半用于购房,夫妻两个都如此。一个家庭奋斗出一套房,夫妻在私营单位工作的需要 14 年,而在非私营单位工作的需要 8 年。

若要让民众在城里奋斗有获得感、安全感、归属感乃至幸福感,这个奋斗时间还要缩短一半才好。结合行业来看,IT 和金融业收入远高于其它行业,若一对夫妻能在这样的行业,连续奋斗 5 年,差不多可以买下一套房。若在非私营单位工作,这个年限还能缩短。但是,这样的行业收入马太效应很强,一般的普通员工的收入被极大地拉高了。