「目录」
绘图和可视化
Plotting and Visualization
9.1 => matplotlib
9.2 => pandas和seaborn绘图
-------> 线型图
-------> 柱状图
-------> 直方图和密度图
-------> 散布图或点图
-------> 分面网格(facet grid)

分面网格(facet grid)
seaborn的factorplot可以绘制分面网格,分面网格可以将多个分类变量的数据可视化,直接看下面例子就明白了:
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
额,还是用原书作者提供的tips.csv里的数据,先使用pd.read_csv读取数据,然后显示前5行:
tips = pd.read_csv(r'.tips.csv')
tips.head()

我们新增一个列'tip_pct'来统计小费占总消费额的百分比:
tips['tip_pct'] = tips['tip'] / tips['total_bill']
tips.head()

分类变量:天day、时间time,查看消费总额
我们按照天/时间来查看消费总额,绘图形式为bar柱状图:
sns.factorplot(x = 'day', y = 'total_bill', hue = 'time', kind = 'bar', data = tips)

上面传入的kind='bar'会自动统计平均消费总额,传入kind=’swarm‘可以绘制散点图,可以更直观的看到最大值,最小值,以及密集分布的区域:
sns.factorplot(x = 'day', y = 'total_bill', hue = 'time', kind = 'swarm', data = tips)

分类变量:天day、时间time、是否吸烟smoker,查看消费总额
传入参数col=’smoker'来新增一列,现在可以按照天/时间/是否吸烟来查看消费总额了:
sns.factorplot(x = 'day', y = 'total_bill', hue = 'time', col = 'smoker', kind = 'swarm', data = tips)

分类变量:天day、时间time、是否吸烟smoker、聚会规模size,查看小费占比
我们还可以传入参数row来来扩展分面网格,比如通过传入row=‘time',将上面的hue='time'改为hue='size',我们现在可以按照天/时间/聚会规模/是否吸烟来查看小费占比:
sns.factorplot(x = 'day', y = 'tip_pct', hue = 'size', col = 'smoker', row = 'time', kind = 'swarm', data = tips)

就这样吧,bye-bye
往期回顾

Pandas绘制散点图


Stay hungry, stay foolish
文章转载自Yuan的学习笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




