参考来源:Vitu.AI
在上一篇中你已经学会了如何画柱状图和热力图,接下来我们来学习散点图, 散点图是用来研究两个变量关系的最好的工具
设置你的Notebook
我们还是老样子在开头先设置一下
importpandasaspdimportmatplotlib.pyplotaspltimportseabornassnsprint("设置完成")
选择数据集
在本篇中我们将使用不同人群购买保险的数据,研究的课题是为什么一些人比另外一些人爱买保险
点击这里 下载 数据集
用excel打开如下:
数据列含义
age: 主要受益人年龄
sex: 保险合约人性别
bmi: 体重指数,提供了一个指标来衡量相对与身高来说体重是重了还是轻了
children: 有几个小孩
smoker: 是否吸烟
region: 地域
charges: 保费
我们再把csv文件上传到vitu的数据集空间里
接下来我们用pandas来加载这个文件:
# Path of the file to readinsurance_filepath ="insurance.csv"# Read the file into a variable insurance_datainsurance_data = pd.read_csv(insurance_filepath)
是时候来检验一下数据了
老习惯打印一下数据集的前5行
insurance_data.head()
散点图登场
我们来使用sns.scatterplot来创建一个新的散点图
sns.scatterplot(x=insurance_data['bmi'], y=insurance_data['charges'])
这个撒点图可以看出体重指数bmi和保费charges有很好的相关性,体重指数高的投保人倾向于买保额更高的保险,这个也很好理解,一般体重指数高的人群患病的风险也高
我们来用回归来量化的看看,把命令换成sns.regplot
sns.regplot(x=insurance_data['bmi'], y=insurance_data['charges'])
带颜色分类的散点图
我们还可以用带颜色分类的散点图来看看三个变量的关系
对于以上研究的数据集,我们来看一下是否吸烟对体重指数和保费的影响
sns.scatterplot(x=insurance_data['bmi'], y=insurance_data['charges'], hue=insurance_data['smoker'])
这个图很有意思的显示了吸烟的人群付的保费相对于不吸烟的人群要多,我们用sns.lmplot来看看
sns.lmplot(x="bmi", y="charges", hue="smoker", data=insurance_data)
你会注意到做完回归以后,吸烟者的回归线的斜度相对于非吸烟者要陡,代表吸烟者中体重指数和保费的相关性更强,在吸烟人群中体重指数越高的人保费付的越多。
原文地址:数据可视化【从编程小白到画图大拿】:4.散点图的秘密