Seaborn是基于matplotlib的图形可视化python包。它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表。
要安装最新版本的seaborn,您可以使用pip:
pip install seaborn
也可以使用conda以下方法安装发布的版本:
conda install seaborn
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 加载样式
sns.set(style="darkgrid")
# 加载数据集tips
tips = sns.load_dataset("tips")
# x,y标轴
sns.relplot(x="total_bill", y="tip", data=tips)
# 根据数据集的其他列来划分数据并对应的样式
sns.relplot(x="total_bill", y="tip", hue="smoker", style="smoker",data=tips)
df = pd.DataFrame(dict(time=np.arange(500),
value=np.random.randn(500).cumsum()))
sns.relplot(x="time", y="value", kind="line", data=df)
注意:
g.fig.autofmt_xdate()
来解决x坐标的乱码问题
df = pd.DataFrame(dict(time=pd.date_range("2017-1-1", periods=500),
value=np.random.randn(500).cumsum()))
g = sns.relplot(x="time", y="value", kind="line", data=df)
g.fig.autofmt_xdate()
对于数据集直接加上col参数
sns.relplot(x="total_bill", y="tip", hue="smoker",
col="time", data=tips)
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(style="ticks", color_codes=True)
tips = sns.load_dataset("tips")
sns.catplot(x="day", y="total_bill", data=tips)
sns.catplot(x="day", y="total_bill", kind="box", data=tips)
sns.catplot(x="day", y="total_bill", kind="violin", data=tips)
在这里插入图片描述
sns.catplot(x="day", y="total_bill",hue="size", kind="bar", data=tips)
对于上面的画图知识点太过单调唯一
单变量分布的最方便的方法是distplot()功能。默认情况下,这将绘制直方图并拟合核密度估计(KDE)
x = np.random.normal(size=100)
sns.distplot(x)
使用的是stats来拟合数据,distplot 本来就有拟合参数,绘制KDE图的功能
from scipy import stats
x = np.random.gamma(6, size=200)
sns.distplot(x, kde=False, fit=stats.gamma)
在seaborn中执行此操作的最简单方法是使用该jointplot()函数,该函数创建一个多面板图形,显示两个变量之间的双变量(或联合)关系以及每个变量在单独轴上的单变量(或边际)分布。
对于机器学习是常用的工具
mean, cov = [0, 1], [(1, .5), (.5, 1)]
# 多元高斯分布
data = np.random.multivariate_normal(mean, cov, 200)
df = pd.DataFrame(data, columns=["x", "y"])
# 散点分布
sns.jointplot(x="x", y="y", data=df)
# 核密度分布
sns.jointplot(x="x", y="y", data=df, kind="kde")
iris = sns.load_dataset("iris")
sns.pairplot(iris)
对于seaborn个人绝对还有一个必须要写的东西就是回归
seaborn无需调用sklearn来处理回归问题
# 还是tips数据集
sns.regplot(x="total_bill", y="tip", data=tips)
在这里插入图片描述
sns.lmplot(x="total_bill", y="tip", data=tips)