当前位置:网站首页>5-1 Seaborn 关系绘图
5-1 Seaborn 关系绘图
2022-08-09 00:29:00 【刚入门的小仙女】
Seaborn 关系绘图
Seaborn是基于 Matplotlib 的图形可视化库。该库提前定义好了一套自己的风格,也封装了一系列的方便的绘图函数,之前通过 matplotlib 需要很多代码才能完成的绘图,使用 seaborn 可能就是一行代码的事情。总结一句话:使用 seaborn 绘图比 matplotlib 更美观、简单。
0. Seaborn安装
- 通过 pip:pip install seaborn
- 通过 anaconda:conda install seaborn
1. 关系绘图
relplot 可以用来表示多个变量之间的关联关系。默认情况下是绘制散点图,也可以绘制线形图。具体绘制什么图形是通过 kind 参数来决定的。实际上一下两个函数就是 relplot 的特例:
(1) scatterplot:relplot(kind=‘scatter’)
(2) lineplot:relplot(kind=‘line’)
1.1 基本使用
relplot 在绘制的时候不能直接给 x 和 y 指定具体的值,而应该使用 data参数 DataFrame 中的具体的列的名字
import seaborn as sns
import pandas as pd
tips = pd.read_csv("dataset/tips.csv")
tips.head()
#绘制散点图 relplot默认绘制散点图
#x,y为data数据集的列名
sns.relplot(x="total_bill",y="tip",data=tips)
1.2 添加 hue 参数
hue 参数是用来控制第三个变量的颜色显示的。Hue 应该指定为某个列的名字,那么 Seaborn 会自动的将指定的列的值的个数取不同的颜色。
#在上例基础上 添加星期参数
sns.relplot(x="total_bill",y="tip",hue="day",data=tips)
1.3 添加 col 和 row 参数
col 和 row 可以将图根据某个属性的值的个数分割成多列或者多行。col表示分成几个图像,应该指定某个列的名字,那么 Seaborn 会自动的将 DataFrame 中这个列的数据,分成多个图。
#在上例基础上,将Lunch(午餐)和Dinner(晚餐)分成两个图来显示
#指定col划分为多列 指定row划分为多行
sns.relplot(x="total_bill",y="tip",hue="day",col="time",data=tips)
也可以再在 row 上添加一个新的变量,如下所示:
#在上例的基础上,把性别按照行显示出来
sns.relplot(x="total_bill",y="tip",hue="day",col="time",row="sex",data=tips)
1.4 指定具体的列
多个图的情况下默认会在一行中全部展现出来,可以通过 col_wrap 来指定具体多少列
sns.relplot(x="total_bill",y="tip",col="day",col_wrap=3,data=tips)
1.5 size 参数
#根据数据集的size列的值 指定size参数设置点的大小
sns.relplot(x="total_bill",y="tip",data=tips,size="size")
1.6 绘制折线图
relplot 通过设置 kind = “line” 可以绘制折线图,并且功能比 plt.plot 更加强大。plot 只能指定具体的 x 和 y 轴的数据(比如 x 轴是 N 个数,y 轴也必须是 N 个数),而 relplot 则可以自动在两组数据中进行计算绘图。
1.6.1 relplot
#ci=None关闭显示置信区间
#style在绘制折线的时候可以用来指定线条的样式
sns.relplot(x="timepoint",y="signal",data=fmri,kind="line",hue="region",col="event",style="region")
1.6.2 lineplot
大致参数与 relplot 一致
#lineplot不支持col参数绘制多个
sns.lineplot(x="timepoint",y="signal",data=fmri,hue="region",style="region")
边栏推荐
- Early departure, learning source half a year, finally got the ants Offer to share the interview process
- Region Proposal Network(RPN)
- Mysql 根据一个表数据更新另外一个表
- 理财产品募集期和开放期有什么区别?
- win10出现次磁盘占用率百分之百的情况
- 图像分割、图像超分辨率简介
- 笔记&代码 | 统计学——基于R(第四版) 第二章数据可视化
- 统一身份管理平台IAM单点登录流程及第三方接口设计方案
- 一道dp的三次优化(时间+空间)
- [Deep Learning] TensorFlow Learning Road 2: Introduction to ANN and TensorFlow Implementation
猜你喜欢
随机推荐
微信企业号开发之获取公共域名
动态style定义背景渐变
【科研-学习-pytorch】1-框架特性和常见问题类型
Use Ehcache distributed cache to easily create commercial-grade high-concurrency, high-performance API interfaces!
整流八--电网不平衡状态下三相PWM整流器的控制策略
【科研-学习-pytorch】7-梯度、激活函数和loss
非线性规划——0-1问题、指派问题例子
无代码平台邮箱入门教程
Phoenix的安装配置以及数据处理(详细步骤)
win10出现次磁盘占用率百分之百的情况
轻量级神经网络SqueezeNext--考虑硬件提速
ReflectCubeMap
Sencha Touch页面跳转创建返回上一级按钮的设计思路
遮罩纹理-MaskTexture
【科研-学习-pytorch】3-分类问题
学习思想的内容总结
一道dp的三次优化(时间+空间)
在特征通道提升网络性能 --SENet网络详解
sql一些小建议
在Ubuntu/Linux环境下使用MySQL:解决com.mysql.jdbc.PacketTooBigException: Packet for query is too large的问题