python barplot_10分钟python seaborn绘图入门 (Ⅱ): barplot 与 countplot

原标题:10分钟python seaborn绘图入门 (Ⅱ): barplot 与 countplot

barplot 条形图

seaborn 的 barplot() 利用矩阵条的高度反映数值变量的集中趋势,以及使用 errorbar 功能(差棒图)来估计变量之间的差值统计。请谨记 bar plot 展示的是某种变量分布的平均值,当需要精确观察每类变量的分布趋势,boxplot 与 violinplot 往往是更好的选择。

具体用法如下:

seaborn.barplot(x=None,y=None,hue=None,data=None,order=None,hue_order=None,ci=95,n_boot=1000,units=None,orient=None,color=None,palette=None,saturation=0.75,errcolor='.26',errwidth=None,capsize=None,ax=None,estimator=,**kwargs)¶Parameters:

x, y, hue: names of variables in data or vector data, optional #设置 x,y 以及颜色控制的变量

Inputs for plotting long-form data. See examples for interpretation.

data: DataFrame, array, or list of arrays, optional #设置输入的数据集

Dataset for plotting. If x and y are absent, this is interpreted as wide-form. Otherwise it is expected to be long-form.

order, hue_order: lists of strings, optional #控制变量绘图的顺序

Order to plot the categorical levels in, otherwise the levels are inferred from the data objects.

estimator : callable that maps vector -> scalar, optional

#设置对每类变量的计算函数,默认为平均值,可修改为 max、median、max 等

Statistical function to estimate within each categorical bin.

ax: matplotlib Axes, optional #设置子图位置,将在下节介绍绘图基础

Axes object to draw the plot onto, otherwise uses the current Axes.

orient: “v” | “h”, optional #控制绘图的方向,水平或者竖直

Orientation of the plot (vertical or horizontal).

capsize: float, optional #设置误差棒帽条的宽度

Width of the “caps” on error bars.

注:代码可左右滑动,下同

importseabornassns

sns.set_style("whitegrid")

tips=sns.load_dataset("tips")#载入自带数据集

#x轴为分类变量day,y轴为数值变量total_bill,利用颜色再对sex分类

ax=sns.barplot(x="day",y="total_bill",hue="sex",data=tips)

fromnumpyimportmedian

ax=sns.barplot(x="day",y="tip",data=tips,estimator=median)

#设置中位数为计算函数,注意y轴已显示为median

countplot 计数图

countplot 故名思意,计数图,可将它认为一种应用到分类变量的直方图,也可认为它是用以比较类别间计数差,调用 count 函数的 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, ax=None, **kwargs)

x, y, hue: names of variables in data or vector data, optional

Inputs for plotting long-form data. See examples for interpretation.

data: DataFrame, array, or list of arrays, optional

Dataset for plotting. If x and y are absent, this is interpreted as wide-form. Otherwise it is expected to be long-form.

order, hue_order: lists of strings, optional #设置顺序

Order to plot the categorical levels in, otherwise the levels are inferred from the data objects.

orient: “v” | “h”, optional #设置水平或者垂直显示

Orientation of the plot (vertical or horizontal).

ax: matplotlib Axes, optional #设置子图位置,将在下节介绍绘图基础

Axes object to draw the plot onto, otherwise uses the current Axes.

>>>importseabornassns

>>>sns.set(style="darkgrid")

>>>titanic=sns.load_dataset("titanic")

#titanic经典数据集,带有登船人员的信息#源数据集class代表三等舱位,who代表人员分类,男女小孩,对每一类人数计数

>>>ax=sns.countplot(x="class",hue="who",data=titanic)

Senior Example Ⅰ for Practice

importnumpyasnp

importseabornassns

sns.set(style="white")#设置绘图背景

# Load the example planets dataset

planets=sns.load_dataset("planets")

# Make a range of years to show categories with no observations

years=np.arange(2000,2015)#生成2000-2015连续整数

#Draw a count plot to show the number of planets discovered each year

#选择调色板,绘图参数与顺序,factorplot一种分类变量的集合作图方式,利用kind选择bar、plot等绘图参数以后将具体介绍

g=sns.factorplot(x="year",data=planets,kind="count",palette="BuPu",size=6,aspect=1.5,order=years)

g.set_xticklabels(step=2)#设置x轴标签间距为2年

Senior Example Ⅱ for Practice

利用 countplot 与 barplot 探索 dc 超级英雄数据,数据集如下所示:

如图第一行为蝙蝠侠的数据有名称,联盟属性,眼睛颜色,头发颜色,性别等信息,一共 6896 个漫画角色与 13 维信息。

# -*-coding:utf-8 -*-

importpandasaspd

importseabornassns

dc=pd.read_csv('H:/zhihu/dc.csv')

#第一个图,我们来探索下英雄与坏蛋们眼睛颜色的分布

#看看坏蛋的眼睛颜色是不是都是什么奇怪的颜色

sns.countplot(y='EYE',data=dc,hue='ALIGN')

乍一看,大部分角色的眼睛颜色都是蓝色棕色绿色等欧美人种颜色,定睛一看,黑颜色与红颜色的眼睛坏人阵营就占优势了。

#第二个图我们来用用barplot,发现每个角色的出场次数是个数值型变量,是个不错的探索数据,我们来看看各个阵营间与性别间的平均上场次数

sns.barplot(y='APPEARANCES',x='ALIGN',data=dc,hue='SEX')

别问我怎么怎么有四个性别,世界之大无奇不有,还有无性别与变性的。总的来说男性和女性还是占了大部分等场时间。

#再来复习一波上一节的知识,来看看好坏阵营间登场小于50次的各大配角们的登场次数分布

ax1=sns.kdeplot(dc['APPEARANCES'][dc['ALIGN']=='Good Characters'][dc['APPEARANCES']<50],shade=True,label='good')

ax2=sns.kdeplot(dc['APPEARANCES'][dc['ALIGN']=='Bad Characters'][dc['APPEARANCES']<50],shade=True,label='bad')

酱油坏蛋们主要集中在 10 次以内,活不过 10 集看来是常态。不过好像好人也是这样的不过没有坏蛋趋势集中。

如需转载请联系 EasyCharts 团队!

微信后台回复 “转载” 即可!

【书籍推荐】

【必备插件】

【网易云课堂】

欢迎加入 图表绘制之魔方学院 QQ 群 交流探讨返回搜狐,查看更多

责任编辑:

你可能感兴趣的:(python,barplot)