综述
学生党整理一些关于数据分析的知识:整理了多变量分析绘图及分类属性绘图的相关代码。主要包括了多指标离散图的绘制、盒图的绘制、violin图的绘制、条形图的绘制、点图的绘制、多层面板分类图的绘制及factorplot()函数的详细说明。
代码模块
调用库
import seaborn as sns
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats, integrate
导入数据及sns.set设置
sns.set(style="whitegrid", color_codes=True)
np.random.seed(sum(map(ord, "categorical"))) #随机数种子
titanic = pd.read_csv('titanic_train.csv')
tips = pd.read_csv('tips.csv')
iris = pd.read_csv('iris.csv')
多指标离散图绘制
绘图未优化前
sns.stripplot(x = "day", y = "total_bill", data = tips,jitter=False)
plt.show()
绘图优化后
sns.stripplot(x = "day", y = "total_bill", data = tips,jitter=False)
plt.show()
绘图类似正态化优化
sns.swarmplot(x = 'day',y = 'total_bill',data = tips)
plt.show()
增加性别后的正态化优化
sns.swarmplot(x = "day", y = "total_bill", hue="sex",data = tips)
plt.show()
将图片横向
sns.swarmplot(x = 'total_bill', y = 'day', hue = "time",data=tips)
plt.show()
盒图
盒图中,矩形表示IQR,即统计学概念四分位距,数据1/4到3/4之间的距离
N = 1.5IQR 如果一个值 大于3/4+N 或 小于1/4-N,则为离群点
sns.boxplot(x = 'day', y = 'total_bill', hue = 'time', data=tips)
plt.show()
横向盒图
sns.boxplot(data=iris, orient='h')
plt.show()
violin图
一半violin图
sns.violinplot(x = 'total_bill',y = 'day', hue = 'time', data=tips)
plt.show()
高级版violin图
sns.violinplot(x = 'day', y = 'total_bill', hue = 'sex',data = tips,split = True)
plt.show()
优化后的散点和violin图结合
sns.violinplot(x = 'day', y = 'total_bill', data=tips, inner=None)
sns.swarmplot(x = 'day', y = 'total_bill', data = tips, color='w',alpha = .5)
plt.show()
条形图
显示值的集中趋势可以用条形图
sns.barplot(x = 'Sex', y = 'Survived', hue = 'Pclass', data=titanic)
plt.show()
点图
可以更好的描述变化差异
sns.pointplot(x = 'Sex', y = 'Survived',hue = 'Pclass', data = titanic)
plt.show()
设置颜色,图标和线条样式
sns.pointplot(hue = 'Sex', y = 'Survived',x = 'Pclass', data = titanic,
palette= {'male':'g','female':'m'},
markers=['^','o'],linestyles=['-','--'])
plt.show()
多层面板分类图
折线图
sns.factorplot(x = 'day', y = 'total_bill', hue = 'smoker', data = tips)
plt.show()
条形图
sns.factorplot(x = 'day', y = 'total_bill', hue = 'smoker', data = tips,kind = 'bar')
plt.show()
多纬度绘图
sns.factorplot(x = 'day', y = 'total_bill', hue = 'smoker',
col = 'time', data = tips, kind = 'swarm')
plt.show()
多维度盒图
sns.factorplot(x = 'time', y = 'total_bill', hue = 'smoker',
col = 'day', data = tips, kind = 'box', size = 4, aspect = .5)
plt.show()
factorplot()详细说明
factorplot()函数中可以使用的参数
- x,y,hue 数据集变量 变量名
- date 数据集 数据名称
- row,col 更多分类变量进行平铺显示 变量名
- col_wrap 每行的最高平铺数 整数
- estimator 在每个分类中进行矢量到标量的映射 矢量
- ci 置信区间 浮点数或者None
- n_boot计算置信区间时使用的引导迭代次数整数
- units 采样单元的标识符,用于执行多级引导和重复测量设计 数据变量或向量数据
- order,hue_order 对应排序列表 字符串列表
- row_order,col_order 对应排序列表 字符串列表
kind | 可选 | |
---|---|---|
1 | point | 默认 |
2 | bar | 柱形图 |
3 | box | 箱体 |
4 | count | 频次 |
5 | violin | 提琴 |
6 | strip | 散点 |
7 | swarm | 分散点 |
8 | size | 每个面的高度(英寸) |
9 | aspect | 标量 纵横比 |
10 | orient | 标量 方向“v/h” |
11 | color | 颜色 |
12 | matplotlib | 颜色 |
13 | palette | 调色板 |
14 | seaborn | 颜色色板或字典 |
15 | legend | hue的信息面板 |
16 | True/False legend_out | 是否扩展图形,并将信息框绘制在中心右边 |
17 | True/Falseshare(x,y) | 共享轴线 |
18 | True/False |
小结
绘图知识整理部分主要针对绘图方法,具体在数据分析过程中使用哪种图片在之后具体的数据分析案例中详细说明。