目录
三、分类分布图
四、分类估计图
五、多变量绘图函数
1.boxplot()
它的作用是可以直观的查看异常值
seaborn.boxplot(x=None, y=None, hue=None, data=None, order=None,
hue_order=None, orient=None, color=None, palette=None, saturation=0.75,
width=0.8, dodge=True, fliersize=5, linewidth=None, whis=1.5, notch=False, ax=None, **kwargs)
部分参数在前两篇文章中已经做了具体的介绍,需要查看参数解释请跳转。
数据可视化——(二)
部分参数解释如下:
sns.set_style('darkgrid')
sns.boxplot(x="day", y='total_bill', data=tips)
从上面这张图我们看出:上方的菱形图案为异常值,中间的横线则为中位数,箱子上下端分别为上下四分位数。
sns.boxplot(x="day", y='total_bill', hue='smoker', data=tips)
sns.boxplot(x="day", y='total_bill', data=tips, fliersize=10)
sns.swarmplot(x='day', y='total_bill', data=tips)
将分swarmplot和boxplot结合起来可以清晰的看出数据的分布情况
2.violinplot
小提琴图的功能与箱型图类似。 它显示了一个(或多个)分类变量多个属性上的定量数据的分布,从而可以比较这些分布。与箱形图不同,其中所有绘图单元都与实际数据点对应,小提琴图描述了基础数据分布的核密度估计。小提琴图可以是一种单次显示多个数据分布的有效且有吸引力的方式,但请记住,估计过程受样本大小的影响,相对较小样本的小提琴可能看起来非常平滑,这种平滑具有误导性。
seaborn.violinplot(x=None, y=None, hue=None, data=None, order=None,
hue_order=None, bw='scott', cut=2, scale='area', scale_hue=True, gridsize=100,
width=0.8, inner='box', split=False, dodge=True, orient=None, linewidth=None,
color=None, palette=None, saturation=0.75, ax=None, **kwargs)
注意:小提琴绘图以基础分布的核密度估计为特征,通过小提琴图可以知道哪些位置的密度较高。在图中,白点是中位数,黑色盒型的范围是下四分位点到上四分位点,细黑线表示须。外部形状即为核密度估计。
参数解析:
sns.violinplot(x="day", y="total_bill", data=tips)
图中的轮廓为核密度估计,中间白点为中位数。其他通发同上
1.barplot()
seaborn.barplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None,
estimator=, ci=95, n_boot=1000, units=None, orient=None,
color=None, palette=None, saturation=0.75, errcolor='.26', errwidth=None,
capsize=None, dodge=True, ax=None, **kwargs)
条形图表示数值变量与每个矩形高度的中心趋势的估计值,用矩形条表示点估计和置信区间,并使用误差线提供关于该估计值附近的不确定性的一些指示。
参数如下:
sns.barplot(x='day', y='total_bill', data=tips)
没有绘制误差棒帽条的宽度,看起来还是很丑的。
sns.barplot(x='day', y='total_bill', data=tips, errwidth=4, capsize=0.2, hue='sex')
2.countplot()
对输入的单个变量的数据进行计数
seaborn.countplot(x=None, y=None, hue=None, data=None, order=None,
hue_order=None, orient=None, color=None, palette=None, saturation=0.75,
dodge=True, ax=None, **kwargs)
sns.countplot(x='day', data=tips)
可以理解为对数据中的特征进行计数
sns.countplot(x='day', data=tips, dodge=True, hue='sex')
按照hue=‘sex'分类之后计数,得到上图。
3.pointplot()
用散点图符号表示点估计和置信区间,点图代表散点图位置的数值变量的中心趋势估计,并使用误差线提供关于该估计的不确定性的一些指示。点图可能比条形图(barplot)更有用于聚焦一个或多个分类变量的不同级别之间的比较。他们尤其善于表现交互作用:一个分类变量的层次之间的关系如何在第二个分类变量的层次之间变化。连接来自相同色调等级的每个点的线允许交互作用通过斜率的差异进行判断,这比对几组点或条的高度比较容易。
seaborn.pointplot(x=None, y=None, hue=None, data=None, order=None,
hue_order=None, estimator=, ci=95, n_boot=1000,
units=None, markers='o', linestyles='-', dodge=False, join=True,
scale=1, orient=None, color=None, palette=None, errwidth=None,
capsize=None, ax=None, **kwargs)
sns.pointplot(y='day', x='total_bill', data=tips)
1.joinplot()
joint意为联合,顾名思义jointplot是一个双变量分布图表接口。绘图结果主要有三部分:绘图主体用于表达两个变量对应的散点图分布,在其上侧和右侧分别体现2个变量的直方图分布
seaborn.jointplot(x,y,data=None,kind='scatter',stat_func=None,color=None,height=6
,ratio=5,space=0.2,dropna=True,xlim=None,ylim=None,joint_kws=None,marginal_kws=None,
annot_kws=None,**kwargs)
x,y:data中的数据或变量名,strings或vectors
data:DataFrame,
kind:默认为scatter,还有reg,resid,kde,hex
color:颜色
height:图像尺寸
ratio:中心轴的高度与侧边轴高度的比例, 即hist图的高度
space:中心和侧边轴的间隔大小,如下图示,为坐标轴边界与直方图的距离
dropna:bool,如果为True,移除xy中的缺失值
xlim、ylim:x、y轴范围
sns.jointplot(x='total_bill', y='tip', data=tips, kind='reg')
sns.jointplot(x='total_bill', y='tip', data=tips, kind='reg', ratio=5, space=2)
设置ratio后,直方图的高度会发生变化,设置space后直方图与点图之间的距离会发生变化。
2.pairplot()
当变量数大于两个时,使用该函数;它将任意函数两两组合,绘制成一个子图,对角线为直方图,其余为散点图
seaborn.pairplot(data,hue=None,hue_order=None,palette=None,vars=None,x_vars=None,
y_vars=None,kind='scatter',diag_kind='auto',markers=None,height=2.5,aspect=1,
dropna=True,plot_kws=None,diag_kws=None,grid_kws=None,size=None)
data:数据框架每列是变量,每行是观察量
hue:str,data中的变量将绘图方面映射到不同的颜色(列名, 即特征)
hue_order:list[str],命令调色板中的色调变量的级别
palette:字典或者seaborn调色板。用于映射hue变量的颜色集。如果是字典,关键字应该是hue变量中的值
markers:设置点的样式, 列表表示
diag_kind:对角线子图的类型,可选auto,kde,hist
(x,y)_vars:变量名列表,用于绘制指定x,y的图形
iris = pd.read_csv('iris.csv')
sns.pairplot(iris)
我们可以清楚的看到各个变量之间的相互关系
sns.pairplot(iris, hue='species')
还有两个非常有用的参数x_vars和y_vars,那具体是怎么使用的呢?
sns.pairplot(iris, x_vars=['sepal_width', 'sepal_length'], y_vars=['sepal_width', 'sepal_length'])
我们可以得出结论:x_vars和y_vars可以指定变量绘制我们想要的图形。