← 返回题库
初级

时序生育率热力图(统计图表)

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve():
    import pandas as pd
    import matplotlib.pyplot as plt
    import numpy as np
    
    url = 'https://liangdaima.com/static/data/wooldridge/fertil1.csv'
    df = pd.read_csv(url)
    
    edu_bins = pd.cut(df['educ'], bins=[0, 8, 12, 16], labels=['≤8年', '9-12年', '>12年'])
    df['edu_bin'] = edu_bins
    pivot = df.pivot_table(values='kids', index='edu_bin', columns='year', aggfunc='mean')
    plt.figure(figsize=(12,6))
    plt.imshow(pivot.values, cmap='RdYlGn_r', aspect='auto')
    plt.colorbar(label='平均生育数量')
    plt.xticks(range(len(pivot.columns)), pivot.columns)
    plt.yticks(range(len(pivot.index)), pivot.index)
    for i in range(len(pivot.index)):
        for j in range(len(pivot.columns)):
            plt.text(j, i, f'{pivot.values[i,j]:.1f}', ha='center', va='center', fontsize=10)
    plt.title('教育-年份 生育率热力图', fontsize=14)
    plt.xlabel('年份', fontsize=12)
    plt.ylabel('教育年限', fontsize=12)
    plt.tight_layout()
    plt.show()
    return "可视化代码执行完成"

示例

输入
print(solve())
期望输出
可视化代码执行完成
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码