对不起,你没有理解我的意思。每张子图应分别以不同的图表类型独立展示全部的数据关系,请重新写一遍
时间: 2024-02-13 11:02:37 浏览: 20
非常抱歉,我理解错误了你的意思。以下是新的代码,它会分别使用散点图、折线图和热力图来分析years_to_graduate与high_school_gpa和college_school_gpa之间的关系:
```python
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 读取数据
df = pd.read_csv('graduation_rate.csv')
# 取出high_school_gpa在2.8和4之间且是0.1的整数倍的数据
df_hs = df.loc[(df['high_school_gpa'] >= 2.8) & (df['high_school_gpa'] <= 4) & (df['high_school_gpa'] % 0.1 == 0)]
# 取出college_school_gpa在2.6和4之间且是0.1的整数倍的数据
df_cs = df.loc[(df['college_school_gpa'] >= 2.6) & (df['college_school_gpa'] <= 4) & (df['college_school_gpa'] % 0.1 == 0)]
# 取出years_to_graduate在3和10之间的数据
df_yt = df.loc[(df['years_to_graduate'] >= 3) & (df['years_to_graduate'] <= 10)]
# 统计high_school_gpa的平均值和标准差
hs_mean = df_hs['high_school_gpa'].mean()
hs_std = df_hs['high_school_gpa'].std()
# 统计college_school_gpa的平均值和标准差
cs_mean = df_cs['college_school_gpa'].mean()
cs_std = df_cs['college_school_gpa'].std()
# 统计years_to_graduate的平均值和标准差
yt_mean = df_yt['years_to_graduate'].mean()
yt_std = df_yt['years_to_graduate'].std()
# 绘制子图
fig, axs = plt.subplots(1, 3, figsize=(15, 5))
# 绘制high_school_gpa和years_to_graduate的散点图
axs[0].scatter(df_hs['high_school_gpa'], df_yt['years_to_graduate'], s=10)
axs[0].set_xlabel('high_school_gpa')
axs[0].set_ylabel('years_to_graduate')
axs[0].set_title('mean={:.2f}, std={:.2f}'.format(hs_mean, hs_std))
# 绘制college_school_gpa和years_to_graduate的折线图
axs[1].plot(df_cs['college_school_gpa'], df_yt['years_to_graduate'])
axs[1].set_xlabel('college_school_gpa')
axs[1].set_ylabel('years_to_graduate')
axs[1].set_title('mean={:.2f}, std={:.2f}'.format(cs_mean, cs_std))
# 绘制high_school_gpa和college_school_gpa的热力图
sns.histplot2d(df_hs['high_school_gpa'], df_cs['college_school_gpa'], bins=20, cmap='coolwarm', cbar=True, ax=axs[2])
axs[2].set_xlabel('high_school_gpa')
axs[2].set_ylabel('college_school_gpa')
axs[2].set_title('')
# 调整子图之间的间距
plt.subplots_adjust(wspace=0.4)
# 保存图片
plt.savefig('graduation_result.png')
```
这段代码会读取名为“graduation_rate.csv”的文件,并根据要求取出符合条件的数据。然后,它会分别绘制高中GPA和毕业年限的散点图、大学GPA和毕业年限的折线图,以及高中GPA和大学GPA的热力图。最后,它会将所有子图合并在一张图片中,并将其保存为“graduation_result.png”。
注意:由于数据的随机性,你每次运行程序得到的结果可能会略有不同。