Seaborn是一个画图工具 Seaborn是基于Matplotlib的一个Python作图模块 配色更加好看,种类更多,但函数和操作比较简单
散点图可直接观察两个变量的分布情况
import seaborn as sns
import pandas as pd
import numpy as np
iris = pd.read_csv('./data/iris.csv')
sns.jointplot(x='sepal_length', y='petal_length', data=iris)
sns.jointplot("sepal_length", "petal_length", data=iris, kind="reg")
sns.jointplot("sepal_length", "petal_length", data=iris, kind="hex")
sns.jointplot("sepal_width", "petal_length", data=iris, kind="kde", space=0, color="g")
通常最大值和最小值检测数据集中的异常值 通过中位数判断数据集的偏态和尾重
import seaborn as sns
import pandas as pd
import numpy as np
tips = pd.read_csv("./data/tips.csv")
tips.head(3)
sns.boxplot(x=tips["total_bill"])
sns.boxplot(x="day", y="total_bill", data=tips)
sns.boxplot(x="day", y="total_bill",hue = "smoker", data=tips,palette = "Set3")
直方图中,条形的长为对应组的频数与组距的比 直方图能够清楚显示各组频数分布情况 易于显示各组之间频数的差别
distplot()结合了Matplotlib中的hist()、kdeplot()和rugplot()
sns.distplot(tips["total_bill"])
rug用于观察数据的密度分布
sns.distplot(tips["total_bill"], rug=True, hist=False)
kde用于指定是否在图上添加高斯核密度估计
from scipy.stats import norm
sns.distplot(tips["total_bill"], fit=norm, kde=False)
from scipy.stats import norm
sns.distplot(tips["total_bill"], fit=norm, kde=True)
sns.distplot(tips["total_bill"], vertical=True,color='y')
柱状图用于反映离散特征中不同特征值的数目
sns.countplot(x="day", data=tips)
sns.countplot(x="day", hue="sex", data=tips)
sns.countplot(y="day", hue="sex", data=tips)
核密度图(kernel density estimation ,kde) 是一种非参数检验方法 用于估计未知的密度函数
使用Seaborn中的kdeplot()函数绘制单变量或双变量的核密度估计图
sns.kdeplot(tips["total_bill"])
sns.kdeplot(tips["total_bill"],shade=True,color='r')
sns.kdeplot(tips["total_bill"],tips['tip'])
sns.kdeplot(tips["total_bill"],tips['tip'], n_levels=30, cmap="Purples_d")
小提琴图是盒图与核密度图的结合 能够一次从多个维度反映出数据的分布
sns.violinplot(x=tips["total_bill"])
sns.violinplot(x="day", y="total_bill", data=tips)
palette用于指定seaborn内置颜色
sns.violinplot(x="day", y="total_bill", hue="smoker",data=tips, palette="muted")
count表示根据不同bin对应观测值多少调节
sns.violinplot(x="day", y="total_bill", hue="sex", data=tips, palette="Set2",split=True,scale="count")
刻画数据集一对变量之间相互关系,并对单变量做出分布直方图
sns.set(style="ticks", color_codes=True)
sns.pairplot(iris)
pd.scatter_matrix(iris, diagonal='hist', color = 'b',alpha=0.3, figsize=(10, 10), marker='o')
sns.set(style='darkgrid')
sns.pairplot(iris, diag_kind='kde', kind='reg', markers='+')
sns.pairplot(iris,markers='o',x_vars=["sepal_width", "sepal_length"],y_vars=["petal_width", "petal_length"], kind='reg')
sns.set(style='darkgrid')
sns.pairplot(iris, vars=['sepal_width', 'sepal_length'], palette="Set1", size=3)
sns.lmplot(x="total_bill", y="tip", data=tips)
sns.lmplot(x="total_bill",y="tip",hue="smoker",data=tips,palette='Set1')
sns.lmplot(x="total_bill", y="tip", col="smoker", data=tips)
sns.lmplot(x="total_bill", y="tip", row="sex", col="time",data=tips, size=3)