微信公众号:《Python读钱》有任何问题或建议欢迎留言公众号Seaborn是一个基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。Seaborn其实是在matplotlib的基础上进行了更高级的API封装,无需大量调整,让绘图更简单,让你的图更精致。注:所有代码均在IPythonnotebook中实现barplot(条形图)条形图表示对数值变量的集中趋势和每个矩形的高度的估计,并使用误差条提供一些关于此估计周围不确定性的不确定性指示.具体用法如下:seaborn.barplot(x=None,y=None,hue=None,data=None,order=None,hue_order=None,estimator=(functionmean),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)接下来,让我们通过具体例子了解里面一些参数的用法:%matplotlibinlineimportpandasaspdimportnumpyasnpimportseabornassnsimportmatplotlib.pyplotasplt.rc("font",family="SimHei",size="12")#used解决中文显示没问题sns.set_style("whitegrid")本文用到的数据集内容如下data.head(5)#data是一个dataframex,y(str):dataframe中的列名数据:数据框或数组sns。barplot(x="color",y="age",data=data)图像解释:Seaborn会对"color"列中的值进行分类,然后根据estimator参数的方法计算对应的值(默认为平均值)计算出的值作为条形图显示的值(条形图上的误差条表示每一类值相对于条形图显示的值的误差)hue(str):dataframe的列名,根据列名中的值组成分类柱状图sns.barplot(x="color",y="age",data=data,hue="gender")order,hue_order(listsofstrings):用来控制条形图的顺序fig,axes=plt.subplots(1,2)sns.barplot(x="gender",y="age",data=data,ax=axes[0])sns.barplot(x="gender",y="age",data=data,ax=axes[1],order=["female","male"])estimator:控制bar整列数据的值chartfig,axes=plt.subplots(1,2)sns.barplot(x="gender",y="age",data=data,ax=axes[0])#左图,默认为平均值sns.barplot(x="gender",y="age",estimator=np.median,data=data,ax=axes[1])#右图,中位数ci(float):置信区间(0-100之间interval),如果填“sd”,则使用标准误(默认为95)fig,axes=plt.subplots(1,2)sns.barplot(x="color",y="age",data=data,ci=0,ax=axes[0])#Left图sns.barplot(x="color",y="age",data=data,ci="sd",ax=axes[1])#右图capsize(float):设置errorbarcap(上下下两条根水平线)宽度fig,axes=plt.subplots(1,2)sns.barplot(x="color",y="age",data=data,ax=axes[0],capsize=.2)#左图sns.barplot(x="color",y="age",data=data,ax=axes[1],capsize=.5)#右图palette:调色板,控制不同颜色stylefig,axes=plt.subplots(2,1)sns.barplot(x="color",y="age",data=data,ax=axes[0])#上图sns.barplot(x="color",y="age",data=data,palette="Set3",ax=axes[1])#下图中X轴和Y轴对调fig,axes=plt.subplots(1,2)sns.barplot(x="age",y="color",data=data,ax=axes[0])#左图sns.barplot(x="color",y="age",data=data,ax=axes[1])#Rightfigurecountplotentry计数图可以认为是分类直方图,而不是定量变量e.基本api和选项与barplot()相同,因此您可以比较嵌套变量中的计数。(工作原理是对输入的数据进行分类,柱状图显示每一类的个数)具体用法如下: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)注:countplot的参数基本和barplot类似,可以与记忆相提并论。不同的是,在countplot中不能同时输入x和y,countplot是没有误差线的。照着例子体会一下:fig,axes=plt.subplots(1,2)sns.countplot(x="gender",data=data,ax=axes[0])#leftpicturesns.countplot(y="gender",data=data,ax=axes[1])#右图fig,axes=plt.subplots(1,2)sns.countplot(x="gender",hue="smoker",data=data,ax=axes[0])#leftfiguresns.countplot(y="gender",hue="smoker",data=data,ax=axes[1])#rightfigurefig,axes=plt.subplots(2,1))sns.countplot(x="color",data=data,ax=axes[0])#上图sns.countplot(x="color",data=data,palette="Set3",ax=axes[1])#下图点图入口点图表示对散点图所在位置的数值变量的集中趋势的估计,并使用误差条提供一些关于这个估计的不确定性的指示。点图可能比条形图更有用,可以集中比较一个或多个分类变量的不同水平。他们特别擅长表示交互作用:一个分类变量的水平之间的关系如何在第二个分类变量的水平之间变化。连接同一色调类中每个点的线允许通过斜率差异来判断交互,这比比较点集或条形高度更容易。具体用法如下:seaborn.pointplot(x=None,y=None,hue=None,data=None,order=None,hue_order=None,estimator=(functionmean),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)接下来继续使用之前的数据集进行绘图。与barplot相同的参数不再详细演示,pointplot的演示独树一帜。sns.set(font_scale)#初始化seaborn配置并设置字体大小sns.set_style("darkgrid")#灰色网格背景sns.pointplot(x="smoker",y="age",data=data)点是这组数据的平均点,竖线是误差线。默认情况下,两个平均点将被连接。如果不想显示,可以使用join参数来实现:sns.pointplot(x="smoker",y="age",data=data,join=False)我们已经演示了hue参数之前的barplot,现在来看pointplot的hue参数:sns.pointplot(x="smoker",y="age",data=data,hue="gender")可以看到两者的误差线类别重叠,使数据观察不明确。如何解决这个问题呢?pointplot的dodge参数可以错开重叠的部分:sns.pointplot(x="smoker",y="age",data=data,hue="gender",dodge=True)接下来我们设置均值的样式点(由参数markers控制)和相同色调的点之间的连接(由参数linestyles控制)进行了一些更改。sns.pointplot(x="smoker",y="age",data=data,hue="gender",dodge=True,markers=["*","x"],linestyles=["-.","--"])其他样式请参考matplotlib线型,交换X轴和Y轴。sns.pointplot(x="age",y="color",data=data,color="#bb3f3f")还有其他参数和barplot效果一样,大家可以自己试试。以上内容是我结合官方文档和自己的理解写的。如有错误,可以指出并提出意见,共同交流,共同进步。也希望我写的能对你看完这篇文章有所帮助。!扫描二维码关注公众号《Python读钱》,干货第一时间获取!