import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
绘制单变量分布
np.random.seed(0)
arr = np.random.randn(100)
sns.displot(arr,bins=10,kde=True,rug=True)

绘制双变量分布
绘制散点图
df = pd.DataFrame({"x":np.random.randn(500),"y":np.random.randn(500)})
df.head()
|
x |
y |
0 |
1.883151 |
-1.550429 |
1 |
-1.347759 |
0.417319 |
2 |
-1.270485 |
-0.944368 |
3 |
0.969397 |
0.238103 |
4 |
-1.173123 |
-1.405963 |
sns.jointplot(x="x",y="y",data=df,kind="scatter",color="green",height=8,ratio=2,space=1)

绘制二维直方图
sns.jointplot(x="x",y="y",data=df,kind="hex")

绘制核密度估计度
sns.jointplot(x="x",y="y",data=df,kind="kde")

sns.kdeplot(x="x",y="y",data=df,shade=True,cbar=True)

绘制成对的双变量分布
dataset = sns.load_dataset("iris")
dataset.head()
|
sepal_length |
sepal_width |
petal_length |
petal_width |
species |
0 |
5.1 |
3.5 |
1.4 |
0.2 |
setosa |
1 |
4.9 |
3.0 |
1.4 |
0.2 |
setosa |
2 |
4.7 |
3.2 |
1.3 |
0.2 |
setosa |
3 |
4.6 |
3.1 |
1.5 |
0.2 |
setosa |
4 |
5.0 |
3.6 |
1.4 |
0.2 |
setosa |
sns.pairplot(dataset)

用分类数据绘图
类别散点图
data = sns.load_dataset("tips")
data.head()
|
total_bill |
tip |
sex |
smoker |
day |
time |
size |
0 |
16.99 |
1.01 |
Female |
No |
Sun |
Dinner |
2 |
1 |
10.34 |
1.66 |
Male |
No |
Sun |
Dinner |
3 |
2 |
21.01 |
3.50 |
Male |
No |
Sun |
Dinner |
3 |
3 |
23.68 |
3.31 |
Male |
No |
Sun |
Dinner |
2 |
4 |
24.59 |
3.61 |
Female |
No |
Sun |
Dinner |
4 |
sns.stripplot(x="day",y="total_bill",data=data,hue="time",jitter=False)

sns.stripplot(x="day",y="total_bill",data=data,hue="time",jitter=True)

sns.swarmplot(x="day",y="total_bill",data=data)

类别内数据分布
sns.boxplot(x="day",y="total_bill",data=data,hue="time",palette={"g","r"},saturation=0.5)

sns.violinplot(x="day",y="total_bill",data=data,hue="time")

类别内统计估计
sns.barplot(x="day",y="total_bill",data=data,hue="time")

sns.pointplot(x="day",y="total_bill",data=data,hue="time")
