第一部分:安装seaborn库
(1)安装wcwidth
conda install wcwidth
(2)验证安装是否成功![](https://i-blog.csdnimg.cn/direct/8600cd0248d94d2ebbb969a55ce16686.png)
python -c "import seaborn; print(seaborn.__version__)"
(3)卸载wcwidth
conda remove wcwidth
第二部分:热力图实现
(1)附件:学生成绩表
通过网盘分享的文件:学生成绩表.zip
链接: https://pan.baidu.com/s/14OSuv-hxW0AcUaN6gC-ebA?pwd=uamy 提取码: uamy
--来自百度网盘超级会员v5的分享
(2)实现代码
①“语文”,“数学”,“英语”
1.代码
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from pylab import mpl
# 设置中文显示字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False
# 读取成绩表,假设它已经包含评级列
df = pd.read_excel("学生成绩表.xlsx")
# 准备数据
# 假设评级列名为 '评级'
# 并且成绩列名为 ['语文', '数学', '英语']
print(df.columns) # 得到 ['学生编号', '语文', '数学', '英语', '总成绩', '评定等级']
# 排除 '学生编号' 和 '评定等级' 列,只保留成绩列
data = df[['学生编号', '语文', '数学', '英语']].dropna()
# 绘制热力图
plt.figure(figsize=(10, 8))
sns.heatmap(data[['语文', '数学', '英语']].corr(), annot=True, cmap='coolwarm', linewidths=0.5)
plt.title('语文、数学、英语之间的相关性热力图')
plt.show()
2.效果
3.分析(1为完全正相关,1为完全负相关,0为不相关)
-
中文和数学:相关性为 0.047 表明这两门科目的分数之间几乎没有线性关系。学生的中文表现并不能预测他们的数学表现。
-
中文和英文:相关性为 -0.061 表示两个受试者之间的关系略为负值,但关系非常弱。这意味着有一种非常弱的趋势,即在中文中表现良好可以略微预测在英语中表现较差,但这种关系几乎可以忽略不计。
-
数学和英语:相关性为 -0.079 表明负相关关系较弱,这意味着数学表现良好的学生英语表现较差有轻微的趋势,但这种关系非常弱。
证明,这三个之间独立(没什么相互关联)!
②“语文”,“数学”,“英语”成绩对最终“评定等级”(用总成绩来评估)的影响。
1.代码
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from pylab import mpl
# 设置中文显示字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False
# 读取成绩表,假设它已经包含评级列
df = pd.read_excel("学生成绩表.xlsx")
# 准备数据
# 假设评级列名为 '总成绩'
# 并且成绩列名为 ['语文', '数学', '英语']
print(df.columns) # 得到 ['学生编号', '语文', '数学', '英语', '总成绩', '评定等级']
# 排除 '学生编号' 列,只保留成绩和评级列
data = df[['语文', '数学', '英语', '总成绩']].dropna()
# 绘制热力图
plt.figure(figsize=(10, 8))
sns.heatmap(data.corr(), annot=True, cmap='coolwarm', linewidths=0.5)
plt.title('语文、数学、英语与总成绩的关系热力图')
plt.show()
2.效果
3.分析
这次我们直接研究“三科成绩”与“总成绩”之间的关系:
-
语文和总成绩:相关性为 0.18 表明语文成绩与总成绩之间存在弱正相关关系,这意味着语文成绩对总成绩有一些影响,但影响不是非常显著。
-
数学和总成绩:相关性为 0.18 与语文类似,数学成绩与总成绩也是弱正相关。数学成绩的变化对总成绩有一定影响,但不是很强。
-
英语和总成绩:相关性为 0.186,英语成绩与总成绩之间的正相关性比语文和数学稍弱,但仍然是正相关。英语成绩的变化也对总成绩有一定影响
总体得到的结果是:总成绩的影响因素为:语文+数学+英语
希望能帮助到大家!