这么做网站原型图,网址你懂我意思正能量,卫浴外贸版网站案例,河北网站排名大家好#xff0c;数据可视化是探索性数据分析的重要组成部分#xff0c;因为它有助于分析和可视化数据#xff0c;以获得对数据分布、变量之间的关系和潜在异常值的启示性见解。Python具有丰富的库#xff0c;可以快速高效地创建可视化。
在Python中#xff0c;通常使用…大家好数据可视化是探索性数据分析的重要组成部分因为它有助于分析和可视化数据以获得对数据分布、变量之间的关系和潜在异常值的启示性见解。Python具有丰富的库可以快速高效地创建可视化。
在Python中通常使用以下几种类型的可视化进行探索性数据分析柱状图用于显示不同类别之间的比较、折线图用于显示随时间或不同类别的趋势、饼图用于显示不同类别的比例或百分比、直方图用于显示单个变量的分布、热图用于显示不同变量之间的相关性、散点图用于显示两个连续变量之间的关系、箱线图用于显示变量的分布并识别异常值。
1. 理解业务问题
心血管疾病是全球死亡的主要原因。根据世界卫生组织的数据每年约有1,790万人死于心脏病。其中85%的死亡是由心脏病发作和中风引起的。本文中将探索来自Kaggle的心脏病数据集并使用Python创建用于探索性数据分析的数据可视化。
该数据集包含有关患者的数据包括年龄、性别、血压、胆固醇水平以及是否患有心脏病发作等各种变量。该数据集的目标是根据患者的医疗属性预测其是否有心脏病发作的风险。
2.导入必要的库
# import libraries
import pandas as pd
import numpy as np# data visualization
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px
import plotly.graph_objects as go
from plotly.subplots import make_subplots
3. 加载数据集
将数据加载到一个Pandas DataFrame中并开始探索它。
heart pd.read_csv(heart.csv)
现在已经加载数据看一下DataFrame的前几行以了解数据的大致情况。
heart.head() 可以看到数据集包含14列包括目标列输出该列指示患者是否患有心脏病发作现在开始创建可视化图表。
4. 数据清理和预处理
数据清理的目的是准备好数据进行分析和可视化。
# 检查是否存在任何空值
heart.isnull().sum().sort_values(ascendingFalse).head(11) 正如我们在这里看到的这种情况下没有缺失值。
# 检查重复值
heart.duplicated().sum()
# 删除重复值
heart.drop_duplicates(keepfirst, inplaceTrue)
5. 统计摘要
# 获取数据集的统计摘要
heart.describe().T 可以得出的主要结论是对于大多数列平均值与中位数50th percentile: 50%相似。
6. 数据可视化与解释
基于性别的数据可视化
# Compare Heart Attack vs Sex
df pd.crosstab(heart[output],heart[sex])sns.set_style(white)df.plot(kindbar,figsize(6,6),color[#c64343, #e1d3c1]);plt.title(Heart Attack Risk vs Sex , fontsize16)
plt.xlabel(0 Lower Risk 1 Higher Risk, fontsize16)
plt.ylabel(Amount, fontsize16)
plt.legend([Female,Male], fontsize14)
plt.xticks(rotation0) fig px.pie(heart2,names sex,template presentation,hole 0.6,color_discrete_sequence[#e1d3c1, #c64343]#color_discrete_sequencepx.colors.sequential.RdBu)# layout
fig.update_layout(title_textGender Distribution,title_x0.5,fontdict( size18),autosizeFalse,width500,height500,showlegendFalse)fig.add_annotation(dict(x0.5, y0.5, aligncenter,xref paper, yref paper,showarrow False, font_size22,textspan stylefont-size: 26px; color#555; font-family:ArialGenderbr/span))fig.update_traces(textpositionoutside, textinfopercentlabel, rotation20)
fig.show() 解释男性患心脏病的风险更高。
基于年龄的数据可视化
plt.figure(figsize(14,8))
sns.set(font_scale1.2)
sns.set_style(white)sns.countplot(xheart[age],paletteReds)plt.title(Count of Patients Age,fontsize20)
plt.xlabel(Age,fontsize16)
plt.ylabel(Count,fontsize16)
plt.show() # age based analysis
sns.set(font_scale1.3)plt.figure(figsize(8,6))
sns.set_style(white)
sns.distplot(heart[age],colorred,kdeTrue)plt.title(Distribution of Patients Age,fontsize20)
plt.xlabel(Age,fontsize16)
plt.ylabel(Density,fontsize16)
plt.show() 解释大多数患者的年龄在50-60岁之间。其中患者中年龄为58岁的人数最多。
基于胆固醇水平的数据可视化
# Attack vs Cholesterol analysis
sns.set(font_scale1.3)
plt.figure(figsize(8,6))
sns.set_style(white)sns.distplot(heart[heart[output]0][chol],colorblue)
sns.distplot(heart[heart[output]1][chol],colorred)plt.title(Heart Attack Risk vs Cholesterol, size20)
plt.xlabel(Cholesterol Level, fontsize16)
plt.ylabel(Density, fontsize16)
plt.legend([Lower Risk,Higher Risk], fontsize14)
plt.show() plt.figure(figsize(8,6))sns.lineplot(ychol,xage,dataheart,colorred)
plt.title(Cholesterol with Age,fontsize20)
plt.xlabel(Age,fontsize16)
plt.ylabel(Cholesterol Level,fontsize16)
plt.show() 解释大多数患者的胆固醇水平在200-300之间随着年龄的增长体内胆固醇水平增加的可能性很高。
基于相关性的数据可视化
plt.figure(figsize(12,10))
sns.set(font_scale0.9)
sns.heatmap(heart.corr(),
annotTrue,
cmapReds)
plt.title(变量间的相关性, size15)
plt.show() 解释热图显示了变量之间相关性比如胸痛类型cp和输出、达到的最大心率thalachh和输出、斜率sp和输出。
本文中使用数据可视化来检查数据集创建了多个图表如条形图、饼图、线图、直方图、热图。探索性数据分析EDA和数据可视化的主要目的是在做出任何假设之前帮助理解数据。它们帮助我们查看分布、摘要统计信息、变量之间的关系和异常值。