楼主: 很小白白bai
562 1

[作图问题求助] 求助异质性回归的可视化统计图怎么做呀 [推广有奖]

  • 0关注
  • 0粉丝

本科生

18%

还不是VIP/贵宾

-

威望
0
论坛币
11 个
通用积分
13.8858
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
460 点
帖子
30
精华
0
在线时间
76 小时
注册时间
2024-3-9
最后登录
2025-4-4

楼主
很小白白bai 学生认证  发表于 2025-2-13 20:37:16 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
如图所示,想做这种的统计图的代码是什么呀,求助求助 1739450170158.png
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:可视化 怎么做 异质性 统计图 求助求助

沙发
小王爱吃羊 学生认证  发表于 2025-12-26 00:43:31
  Python 的 matplotlib + seaborn 实现
举例:
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np

# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei', 'Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False

# 假设你的数据格式如下
# df 包含: x变量, y变量(城镇化率), treat(0或1)

# 示例数据(替换成你的真实数据)
np.random.seed(42)
df = pd.DataFrame({
    '幼年占比': np.concatenate([np.random.uniform(15, 45, 30), np.random.uniform(10, 35, 30)]),
    '壮年占比': np.concatenate([np.random.uniform(50, 75, 30), np.random.uniform(55, 80, 30)]),
    '老年占比': np.concatenate([np.random.uniform(2, 15, 30), np.random.uniform(5, 20, 30)]),
    '城镇化率': np.concatenate([np.random.uniform(35, 75, 30), np.random.uniform(50, 90, 30)]),
    'treat': [0]*30 + [1]*30
})

# 创建三个子图
fig, axes = plt.subplots(1, 3, figsize=(14, 4))

x_vars = ['幼年占比', '壮年占比', '老年占比']
colors = {0: 'steelblue', 1: 'indianred'}
labels = {0: 'treat=0,亚洲国家', 1: 'treat=1,非亚洲国家'}

for ax, x_var in zip(axes, x_vars):
    for treat_val in [0, 1]:
        subset = df[df['treat'] == treat_val]
        # 散点
        ax.scatter(subset[x_var], subset['城镇化率'],
                   c=colors[treat_val], label=labels[treat_val], alpha=0.7, s=30)
        # 拟合线
        z = np.polyfit(subset[x_var], subset['城镇化率'], 1)
        p = np.poly1d(z)
        x_line = np.linspace(subset[x_var].min(), subset[x_var].max(), 100)
        ax.plot(x_line, p(x_line), c=colors[treat_val], linewidth=1.5)
   
    ax.set_xlabel(f'{x_var}(%)')
    ax.set_ylabel('城镇化率(%)')
    ax.legend(fontsize=8)
    ax.axhline(y=60, color='gray', linestyle='--', linewidth=0.8)  # 参考线

plt.suptitle('"一带一路"沿线国家人口年龄结构对城镇化影响的亚洲国家和非亚洲国家处理效应差异', fontsize=12)
plt.tight_layout()
plt.savefig('treatment_effect_plot.png', dpi=300, bbox_inches='tight')
plt.show()

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-30 09:20