seaborn 分类category

2017-12-24  本文已影响121人  怂恿的大脑

## 一、导入常用包

import pandas as pd

import numpy as np

import seaborn as sns

import matplotlib as mlp

import matplotlib.pyplot as plt

## 二、导入seanborn内置数据集’tips‘

titanic = sns.load_dataset("titanic")

tips = sns.load_dataset("tips")

iris = sns.load_dataset("iris")

## 四、重点 多变量回归分析

# 对于星期几,只有1234567这几个类别值,这样的数据如何很好的可视化展示,重要

#对于类别可以用stripplot,并不推荐大家使用,因为堆在一块了某天的,通常数据量比较大。这个是需要我们解决的问题,解决堆积问题

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

#方案1 还是stripplot,但是加上jitter ,jitter=true,即要把我这个点进行偏,随机偏动,更清晰展示

#重叠是很常见的现象,但是重叠营销了我观察数据的量了

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

#方案2 用 看起来像数一样,用swarmplot函数,类似圣诞树,这个比较好比上个,还可以加上一个属性,加上一个hue指标,通用的参数这是hue等

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

##横竖着话,x和y调过来即可

##五、盒图,一般情况下数据并不是那么的好,会有离群值(异常值),sns.boxplot,传入x,传入y,传入data

# IQR即统计学概念四分位距离,即第一/四分位与第三/四分位之间的距离

# N=1.5IQR 如果一个值>Q3+N,或者<Q1-N,则为离群点,两个横杠表示最大值,最小值,菱形表示离群点

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

plt.show()

#六、琴形图,越胖出现的次数越多,越瘦出现的次数越小,可以指定split属性,即左边一个属性,右边一个属性,split=true

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

sns.violinplot(x='total_bill',y='day',hue='sex',data=tips,split=True)

## 七、图合并,alpha=.5代表透明程度,

sns.violinplot(x='day',y='total_bill',data=tips,inner=None)

sns.swarmplot(x='day',y='total_bill',data=tips,color = 'w',alpha=.5)

## 八、条形图barplot,可以分组

##数据集是泰坦尼克号数据集,class是头等舱、二等舱、三等舱,y是获救率

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

##点图,可以更好的描述变化差异,点图pointplot.用的蛮多的,linestyles是线形(折线图)

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

##点图,参数化设置

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

palette={'male':'g',"female":"m"},

markers=["^","o"],linestyles=['-','--']) #palette用大括号,其他的用中括号记住

##九、多层面板分类图(常用的)factorplot,在这里可以画各种图,只要把kind指定好即可

sns.factorplot(x='day',y="total_bill",hue="smoker",data=tips)

sns.factorplot(x='day',y='total_bill',hue='smoker',data=tips,kind='bar')

sns.factorplot(x='day',y='total_bill',hue="smoker",col="time",data=tips,kind='swarm')

sns.factorplot(x="time", y="total_bill", hue="smoker",

col="day", data=tips, kind="box", size=4, aspect=1) #size空间大小,慢慢自己把握

参数解释

seaborn.factorplot(x=None, y=None, hue=None, data=None, row=None, col=None, col_wrap=None, estimator=<function mean>, 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)

### Parameters: ###

* 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

完整笔记+图片链接地址

上一篇下一篇

猜你喜欢

热点阅读