数据可视化【从编程小白到画图大拿】:4.散点图的秘密

裂魂人
• 阅读 1290

参考来源:Vitu.AI

在上一篇中你已经学会了如何画柱状图和热力图,接下来我们来学习散点图, 散点图是用来研究两个变量关系的最好的工具

设置你的Notebook

我们还是老样子在开头先设置一下

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
print("设置完成")

选择数据集

在本篇中我们将使用不同人群购买保险的数据,研究的课题是为什么一些人比另外一些人爱买保险

点击这里 下载 数据集

用excel打开如下:

数据可视化【从编程小白到画图大拿】:4.散点图的秘密

数据列含义

age: 主要受益人年龄

sex: 保险合约人性别

bmi: 体重指数,提供了一个指标来衡量相对与身高来说体重是重了还是轻了

children: 有几个小孩

smoker: 是否吸烟

region: 地域

charges: 保费

我们再把csv文件上传到vitu的数据集空间里

数据可视化【从编程小白到画图大拿】:4.散点图的秘密

接下来我们用pandas来加载这个文件:

# Path of the file to read
insurance_filepath = "insurance.csv"

# Read the file into a variable insurance_data
insurance_data = pd.read_csv(insurance_filepath)

是时候来检验一下数据了

老习惯打印一下数据集的前5行

insurance_data.head()

散点图登场

我们来使用sns.scatterplot来创建一个新的散点图

sns.scatterplot(x=insurance_data['bmi'], y=insurance_data['charges'])

数据可视化【从编程小白到画图大拿】:4.散点图的秘密

这个撒点图可以看出体重指数bmi和保费charges有很好的相关性,体重指数高的投保人倾向于买保额更高的保险,这个也很好理解,一般体重指数高的人群患病的风险也高

我们来用回归来量化的看看,把命令换成sns.regplot

sns.regplot(x=insurance_data['bmi'], y=insurance_data['charges'])

数据可视化【从编程小白到画图大拿】:4.散点图的秘密

带颜色分类的散点图

我们还可以用带颜色分类的散点图来看看三个变量的关系

对于以上研究的数据集,我们来看一下是否吸烟对体重指数和保费的影响

sns.scatterplot(x=insurance_data['bmi'], y=insurance_data['charges'], hue=insurance_data['smoker'])

数据可视化【从编程小白到画图大拿】:4.散点图的秘密

这个图很有意思的显示了吸烟的人群付的保费相对于不吸烟的人群要多,我们用sns.lmplot来看看

sns.lmplot(x="bmi", y="charges", hue="smoker", data=insurance_data)

数据可视化【从编程小白到画图大拿】:4.散点图的秘密

你会注意到做完回归以后,吸烟者的回归线的斜度相对于非吸烟者要陡,代表吸烟者中体重指数和保费的相关性更强,在吸烟人群中体重指数越高的人保费付的越多

原文地址:数据可视化【从编程小白到画图大拿】:4.散点图的秘密

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
PPDB:今晚老齐直播
【今晚老齐直播】今晚(本周三晚)20:0021:00小白开始“用”飞桨(https://www.oschina.net/action/visit/ad?id1185)由PPDE(飞桨(https://www.oschina.net/action/visit/ad?id1185)开发者专家计划)成员老齐,为深度学习小白指点迷津。
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Karen110 Karen110
3年前
​一篇文章总结一下Python库中关于时间的常见操作
前言本次来总结一下关于Python时间的相关操作,有一个有趣的问题。如果你的业务用不到时间相关的操作,你的业务基本上会一直用不到。但是如果你的业务一旦用到了时间操作,你就会发现,淦,到处都是时间操作。。。所以思来想去,还是总结一下吧,本次会采用类型注解方式。time包importtime时间戳从1970年1月1日00:00:00标准时区诞生到现在
Stella981 Stella981
3年前
SpringBoot学习:整合shiro自动登录功能(rememberMe记住我功能)
首先在shiro配置类中注入rememberMe管理器!复制代码(https://oscimg.oschina.net/oscnet/675f5689159acfa2c39c91f4df40a00ce0f.gif)/cookie对象;rememberMeCookie()方法是设置Cookie的生成模
Stella981 Stella981
3年前
Netty中的时间轮(v3.10.7)
在上一篇Netty中的时间轮(v3.2.5)(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzA4ODkxNjcwMA%3D%3D%26mid%3D2247484092%26idx%3D1%26sn%3D2aca7c
Stella981 Stella981
3年前
KubeVela 正式开源:一个高可扩展的云原生应用平台与核心引擎
【来源:阿里巴巴云原生公众号(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzUzNzYxNjAzMg%3D%3D%26mid%3D2247496420%26idx%3D1%26sn%3D3c7f079c40fde0ea91
Stella981 Stella981
3年前
HIVE 时间操作函数
日期函数UNIX时间戳转日期函数: from\_unixtime语法:   from\_unixtime(bigint unixtime\, string format\)返回值: string说明: 转化UNIX时间戳(从19700101 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式举例:hive   selec
Easter79 Easter79
3年前
SpringBoot学习:整合shiro自动登录功能(rememberMe记住我功能)
首先在shiro配置类中注入rememberMe管理器!复制代码(https://oscimg.oschina.net/oscnet/675f5689159acfa2c39c91f4df40a00ce0f.gif)/cookie对象;rememberMeCookie()方法是设置Cookie的生成模
Stella981 Stella981
3年前
Python 一个漂亮的音乐节奏可视化方案
相信很多人都有这样的疑问:如何用Python将音乐的节奏可视化出来?我曾有过一篇文章:Python提取音乐频谱并可视化(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzI3MzM0ODU4Mg%3D%3D%26mid
美凌格栋栋酱 美凌格栋栋酱
4个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(