防患未然,用Matplotlib和Seaborn数据可视化探索心脏疾病风险因素

本文将不同的心脏疾病风险因素之间的关联性和关系可视化,探索心脏疾病风险因素。

微信搜索关注《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数据分析从入门到精通》【摘要 书评 试读】- 京东图书京东JD.COM图书频道为您提供《Python数据分析从入门到精通》在线选购,本书作者:明日科技,出版社:清华大学出版社。买图书,到京东。网购图书,享受最低优惠折扣!icon-default.png?t=N6B9https://item.jd.com/13288736.html

图片

精彩回顾

《发掘巨大价值,用Yfinance和Plotly分析金融数据》

《掌握这18个Pandas知识点,快速入门数据分析》

《数据分析实战,用Python热力图分析房地产市场》

《对于非结构化数据,EDA探索性数据分析该怎么做?》

《数据分析实战,用Pandas分析二手车市场行情》

《11个超级实用的Pandas函数(下)》

《11个超级实用的Pandas函数(上)》

微信搜索关注《Python学研大本营》,加入读者群

访问【IT今日热榜】,发现每日技术热点

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值