暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Python数据分析笔记#9.2.5 pandas绘制分面网格

Yuan的学习笔记 2022-04-05
239



「目录」

绘图和可视化

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


-END-


往期回顾


Pandas绘制散点图




Stay hungry, stay foolish


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

评论