本文将不同的心脏疾病风险因素之间的关联性和关系可视化,探索心脏疾病风险因素。
微信搜索关注《Python学研大本营》,加入读者群,分享更多精彩
心脏病是全世界高病死的主要原因之一,了解其风险因素对于预防和管理至关重要。在本文中,我们将深入研究心脏病数据集,并利用数据可视化技术来深入了解导致心脏病的因素。我们将探索各种可视化方法,以更好地了解不同变量之间的关系及其对目标变量的影响,目标变量表明存在心脏病。
数据集概述
心脏病数据集由303行和14列组成,包含有关各种患者特征和心脏病诊断的信息。在深入研究可视化之前,让我们加载数据集并看一下它的结构。
数据加载和检查
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_csv('heart.csv')
df.head()
输出:
Age Sex ChestPain RestBP Chol Fbs RestECG MaxHR ExAng Oldpeak Slope Ca Thal AHD
0 63 1 typical 145 233 1 2 150 0 2.3 3 0.0 fixed No
1 67 1 asymptomatic 160 286 0 2 108 1 1.5 2 3.0 normal Yes
2 67 1 asymptomatic 120 229 0 2 129 1 2.6 2 2.0 reversable Yes
3 37 1 nonanginal 130 250 0 0 187 0 3.5 3 0.0 normal No
4 41 0 nontypical 130 204 0 2 172 0 1.4 1 0.0 normal No
可视化1:条形图
与心脏病相关的风险因素之一是运动性心绞痛,它指的是在体育锻炼期间出现的胸痛。我们可以使用条形图来可视化患有和不患有运动诱发性心绞痛的患者的分布。
plt.figure(figsize=(8, 6))
sns.countplot(x='exang', data=df)
plt.title('Distribution of Exercise-Induced Angina')
plt.xlabel('Exercise-Induced Angina')
plt.ylabel('Count')
plt.show()
输出:
条形图展示了运动诱发的心绞痛在患者中的分布。x轴表示存在(1)或不存在(0)运动诱发的心绞痛,而y轴表示患者的数量。这种可视化有助于我们了解数据集中有和没有运动诱发心绞痛的患者比例。
可视化2:相关性热力图
为了确定不同变量与心脏病之间的关系,我们可以创建一个相关性热力图。它提供了一个颜色编码矩阵,描述了变量对之间的相关系数。
plt.figure(figsize=(12, 10))
sns.heatmap(df.corr(), annot=True, cmap='coolwarm')
plt.title('Correlation Heatmap')
plt.show()
输出:
相关性热力图显示了数据集中各种变量之间的相关系数。每个单元格代表相关的强度和方向。正值表示正相关,而负值表示负相关。这种可视化使我们能够确定哪些因素对心脏疾病有重大影响。
可视化3:箱线图
胆固醇水平通常与心脏病风险有关。我们可以使用箱形图可视化患有和不患有心脏病的患者的胆固醇水平分布。
plt.figure(figsize=(8, 6))
sns.boxplot(x='Target', y='Chol', data=df)
plt.title('Cholesterol Levels by Heart Disease')
plt.xlabel('Heart Disease')
plt.ylabel('Cholesterol')
plt.xticks([0, 1], ['No Disease', 'Disease'])
plt.show()
输出:
箱形图表示基于存在(1)或不存在(0)心脏病的胆固醇水平(chol)的分布。y轴表示胆固醇值,而x轴表示两个类别:“没有疾病”和“有疾病”。这种可视化有助于我们比较患有和未患有心脏病的患者之间的胆固醇水平。
可视化4:散点图
在胆固醇水平(Chol)期间达到的最大心率是评估心脏健康的重要参数。我们可以创建一个散点图来可视化年龄和胆固醇水平 (Chol) 之间的关系。
plt.figure(figsize=(8, 6))
plt.scatter(df['Age'], df['Chol'], alpha=0.8)
plt.title('Age vs. cholesterol levels')
plt.xlabel('Age')
plt.ylabel('cholesterol levels')
plt.show()
输出:
散点图展示了患者的年龄和他们在运动期间的胆固醇水平之间的关系。每个点代表一个患者,x轴代表他们的年龄,而y轴代表他们的胆固醇水平。这种可视化使我们能够观察到年龄和心率之间的任何模式或趋势,这可以使我们深入了解年龄对心脏健康的影响。
可视化5:饼状图
为了使我们的数据集内存在的心脏疾病可视化,我们可以使用饼状图。下面的代码片段演示了如何创建一个饼状图来显示患有和不患有心脏病的人的比例。
plt.figure(figsize=(8, 6))
heart_disease_counts = df['Target'].value_counts()
plt.pie(heart_disease_counts.values, labels=heart_disease_counts.index, autopct='%1.1f%%', startangle=90)
plt.title('Presence of Heart Disease')
plt.show()
结论
在本文中,我们探索了心脏病数据集,并利用各种可视化手段来深入了解心脏病的风险因素。这些可视化资料强调了运动引起的心绞痛的分布,不同变量之间的相关性,以及胆固醇水平和心脏病之间的关系,以及它们之间的关系。通过利用这些可视化,我们可以更好地了解导致心脏病的因素,并有可能制定预防和管理的策略。
本文代码链接:https://github.com/alaminmagaga/Heart-Disease-Visualization
推荐书单
《Python数据分析从入门到精通》
《Python数据分析从入门到精通》全面介绍了使用Python进行数据分析所必需的各项知识。全书共分为14章,包括了解数据分析、搭建Python数据分析环境、Pandas统计分析、Matplotlib可视化数据分析图表、Seaborn可视化数据分析图表、第三方可视化数据分析图表Pyecharts、图解数组计算模块NumPy、数据统计分析案例、机器学习库Scikit-Learn、注册用户分析(MySQL版)、电商销售数据分析与预测、二手房房价分析与预测,以及客户价值分析。
该书所有示例、案例和实战项目都提供源码,另外该书的服务网站提供了模块库、案例库、题库、素材库、答疑服务,力求为读者打造一本“基础入门+应用开发+项目实战”一体化的Python数据分析图书。
《Python数据分析从入门到精通》内容详尽,图文丰富,非常适合作为数据分析人员的学习参考用书,也可作为想拓展数据分析技能的普通职场人员和Python开发人员学习参考用书。
精彩回顾
微信搜索关注《Python学研大本营》,加入读者群
访问【IT今日热榜】,发现每日技术热点