简介
Seaborn是一种基于matplotlib的图形可视化库。他提前已经定义好了一套自己的风格。然后也封装了一系列的方便的绘图函数,之前通过matplotlib需要很多代码才能完成的绘图,使用seaborn可能就是一行代码的事情。
学习链接:https://www.bilibili.com/video/BV1tA411H7cQ?p=1
官网:https://seaborn.pydata.org/tutorial.html
安装
通过pip install seaborn
即可安装
Seaborn关系绘图
relplot
这个函数功能非常强大,可以用来表示多个变量之间的关联关系。默认情况下是绘制散点图,也可以绘制线性图。
scatterplot:relplot(kind=‘scatter’)。
lineplot:relplot(kind=‘line’)。
基本使用
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips", cache=True, data_home='./seaborn-data-master')
print(tips.sample(5))
sns.relplot(x="total_bill", y="tip", data=tips)
plt.show()
# total_bill tip sex smoker day time size
# 22 15.77 2.23 Female No Sat Dinner 2
# 140 17.47 3.50 Female No Thur Lunch 2
# 102 44.30 2.50 Female Yes Sat Dinner 3
# 178 9.60 4.00 Female Yes Sun Dinner 2
# 49 18.04 3.00 Male No Sun Dinner 2
hue参数
hue参数是用来控制第三个变量的颜色显示的。比如我们在以上图的基础之上体现出星期几的参数,那么可以通过以下代码来实现:
sns.relplot(x="total_bill",y="tip",hue="day",data=tips)
col和row参数:
col和row,可以将图根据某个属性的值的个数分割成多列或者多行。比如在以上图的基础之上我们想要把Lunch(午餐)和Dinner(晚餐)分割成两个图来显示,那么可以通过以下代码来实现:
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)
指定具体的列
有时候我们的图有很多,默认情况下会在一行中全部展示出来,那么我们可以通过col_wrap来指定具体多少列。示例代码如下:
sns.relplot(x="total_bill",y="tip",col="day",col_wrap=2,data=tips)
绘制折线图
relplot通过设置kind="line"可以绘制折线图。并且他的功能比plt.plot更加强大。plot只能指定具体的x和y轴的数据(比如x轴是N个数,y轴也必须为N个数)。而relplot则可以在自动在两组数据中进行计算绘图。示例代码如下:
import seaborn as sns