python组合数据分类_Python数据分析之Seaborn(分类分析绘图 )

python组合数据分类_Python数据分析之Seaborn(分类分析绘图 )_第1张图片

python组合数据分类_Python数据分析之Seaborn(分类分析绘图 )_第2张图片

Seaborn分类分析绘图

%matplotlib inlineimport numpy as npimport pandas as pdimport matplotlib as mplimport matplotlib.pyplot as pltimport seaborn as snssns.set(style="whitegrid", color_codes=True)

np.random.seed(sum(map(ord, "categorical")))titanic = sns.load_dataset("titanic") #导入泰坦尼克数据集tips = sns.load_dataset("tips") #导入小费数据集iris = sns.load_dataset("iris") #导入鸢尾花数据集

散点图

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

python组合数据分类_Python数据分析之Seaborn(分类分析绘图 )_第3张图片

问题:有重叠,无法看见数据的密度。

解决方法一:通过jitter抖动

抖动是平时可视化中的常用的观察“密度”的方法,除了使用参数抖动,特定的抖动需求也可以用numpy在数据上处理实现

sns.stripplot(x="day", y="total_bill", data=tips, jitter=True) # jitter抖动

python组合数据分类_Python数据分析之Seaborn(分类分析绘图 )_第4张图片

解决方法二:通过swarmplot()函数

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

python组合数据分类_Python数据分析之Seaborn(分类分析绘图 )_第5张图片

sns.swarmplot(x="day", y="total_bill", hue="sex",data=tips) #hue 参数控制分组绘图

python组合数据分类_Python数据分析之Seaborn(分类分析绘图 )_第6张图片

箱型图

箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。

python组合数据分类_Python数据分析之Seaborn(分类分析绘图 )_第7张图片

如上图所示,标示了图中每条线表示的含义,其中应用到了分位值(数)的概念。主要包含六个数据节点,将一组数据从大到小排列,分别计算出他的上边缘,上四分位数Q3,中位数,下四分位数Q1,下边缘,还有一个异常值。

举例说明,以下是箱形图的具体例子:

python组合数据分类_Python数据分析之Seaborn(分类分析绘图 )_第8张图片

这组数据显示出:

最小值(minimum)=5

下四分位数(Q1)=7

中位数(Med--也就是Q2)=8.5

上四分位数(Q3)=9

最大值(maximum)=10

平均值=8

四分位间距=Q3-Q1=2 (即ΔQ)

最大值区间: Q3+1.5ΔQ = 12

最小值区间: Q1-1.5ΔQ = 4

mild outlier = 3.5

extreme outlier = 0.5

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

python组合数据分类_Python数据分析之Seaborn(分类分析绘图 )_第9张图片

琴形图

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, orient=None, linewidth=None, color=None, palette=None, saturation=0.75, ax=None, **kwargs)

split: bool, optional #琴形图是否从中间分开两部分

scale: {“area”, “count”, “width”}, optional #用于调整琴形图的宽带。

area——每个琴图拥有相同的面域;

count——根据样本数量来调节宽度;

width——每个琴图则拥有相同的宽度。

inner: {“box”, “quartile”, “point”, “stick”, None}, optional #控制琴图内部数据点的形态。

box——绘制微型 boxplot;

quartiles——绘制四分位的分布;

point/stick——绘制点或小竖条。

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

python组合数据分类_Python数据分析之Seaborn(分类分析绘图 )_第10张图片

sns.violinplot(x="day", y="total_bill", hue="sex", data=tips, split=True) #split: bool, optional #琴形图是否从中间分开两部分

python组合数据分类_Python数据分析之Seaborn(分类分析绘图 )_第11张图片

条形图

显示值的集中趋势可以用条形图

sns.barplot(x="sex", y="survived", hue="class", data=titanic)

python组合数据分类_Python数据分析之Seaborn(分类分析绘图 )_第12张图片

点图

点图可以更好的描述变化差异

sns.pointplot(x="sex", y="survived", hue="class", data=titanic)

python组合数据分类_Python数据分析之Seaborn(分类分析绘图 )_第13张图片

#详细指定属性值sns.pointplot(x="class", y="survived", hue="sex", data=titanic,              palette={"male": "g", "female": "m"}, #  指定颜色              markers=["^", "o"],  # 指定点样式              linestyles=["-", "--"]); # 指定线型样式

python组合数据分类_Python数据分析之Seaborn(分类分析绘图 )_第14张图片

组合

#琴型图 + 分散点图sns.violinplot(x="day", y="total_bill", data=tips, inner=None)sns.swarmplot(x="day", y="total_bill", data=tips, color="w", alpha=.5)

python组合数据分类_Python数据分析之Seaborn(分类分析绘图 )_第15张图片

多层面板分类图

factorplot()函数是对各种图形的一个更高级别的API封装,在Seaborn中非常常用。

seaborn.factorplot(x=None, y=None, hue=None, data=None, row=None, col=None, col_wrap=None, estimator=, ci=95, n_boot=1000, units=None, order=None, hue_order=None, row_order=None, col_order=None, kind='point', size=4, aspect=1, orient=None, color=None, palette=None, legend=True, legend_out=True, sharex=True, sharey=True, margin_titles=False, facet_kws=None, **kwargs)

参数说明:

x,y 数据集变量(变量名)

hue 控制分组绘图(变量名)

date 数据集 (数据集名)

row,col 更多分类变量进行平铺显示 (变量名)

col_wrap 每行的最高平铺数 (整数)

estimator 在每个分类中进行矢量到标量的映射 (矢量)

ci 置信区间 (浮点数或None)

n_boot 计算置信区间时使用的引导迭代次数 (整数)

units 采样单元的标识符,用于执行多级引导和重复测量设计 (数据变量或向量数据)

order, hue_order 对应排序列表 (字符串列表)

row_order, col_order 对应排序列表 (字符串列表)

kind : 可选:point 默认, bar 柱形图, count 频次, box 箱体, violin 提琴, strip 散点,swarm 分散点

size 每个面的高度(英寸) (标量)

aspect 纵横比 (标量)

orient 方向 ("v"/"h")

color 颜色 (matplotlib颜色)

palette 调色板 (seaborn颜色色板或字典)

legend hue的信息面板 (True/False)

legend_out 是否扩展图形,并将信息框绘制在中心右边 (True/False)

share{x,y} 共享轴线 (True/False)

facet_kws FacetGrid的其他参数 (字典)

sns.factorplot(x="day", y="total_bill", hue="smoker", data=tips) #默认是点图

python组合数据分类_Python数据分析之Seaborn(分类分析绘图 )_第16张图片

sns.factorplot(x="day", y="total_bill", hue="smoker", data=tips, kind="bar") #绘制条形图

python组合数据分类_Python数据分析之Seaborn(分类分析绘图 )_第17张图片

sns.factorplot(x="day", y="total_bill", hue="smoker",               col="time", data=tips, kind="swarm") #绘制分散点图

python组合数据分类_Python数据分析之Seaborn(分类分析绘图 )_第18张图片

sns.factorplot(x="time", y="total_bill", hue="smoker",               col="day", data=tips, kind="box", size=4, aspect=.5) #绘制箱型图

python组合数据分类_Python数据分析之Seaborn(分类分析绘图 )_第19张图片

参考

[Style functions]http://seaborn.pydata.org/tutorial/aesthetics.html#aesthetics-tutorial

[Color palettes]http://seaborn.pydata.org/tutorial/color_palettes.html#palette-tutorial

[Distribution plots]http://seaborn.pydata.org/tutorial/distributions.html#distribution-tutorial

[Categorical plots]http://seaborn.pydata.org/tutorial/categorical.html#categorical-tutorial

[Regression plots]http://seaborn.pydata.org/tutorial/regression.html#regression-tutorial

[Axis grid objects]http://seaborn.pydata.org/tutorial/axis_grids.html#grid-tutorial

[10分钟python图表绘制]https://zhuanlan.zhihu.com/p/24464836

你可能感兴趣的:(python组合数据分类)