本课程共七个章节,课程地址:7周成为数据分析师(完结)_哔哩哔哩_bilibili
- 数据分析思维
- 业务知识
- Excel
- 数据可视化
- SQL
- 统计学
- Python
- Python的数据科学环境(P86)
- Python基础(P87-P97)
- 数据分析常用包:Numpy和Pandas(P98-P112)
- Python连接数据库(P113-P114)
- 数据分析案例(P115-P124)
- 数据可视化:Matplotlib和Seaborn(P125-P138)
- 数据分析平台(P139-P143)
目录
第七周:Python(P86-P143)
六、数据可视化:Matplotlib和Seaborn
(一)Pandas自带的可视化
- 折线图 plot
- 柱形图/条形图 bar
- 直方图 hist
- 箱线图 box
- 密度图 kde
- 面积图 area
- 散点图 scatter
- 散点图矩阵 scatter_matrix
- 饼图 pie
(二)Matplotlib
- 饼图 plt.pie()
- 折线图 plt.plot()
- 图表元素
- 同时画多条折线图
- 添加图例
- 绘制子图subplot
(三)Seaborn(高级图像)
分布
- distplot 概率分布图
- kdeplot 概率密度图
- jointplot 联合密度图(两个变量)
- pairplot 多变量图(多个变量)
分类
- boxplot 箱线图
- violinplot 提琴图
- barplot 柱形图
- factorplot 因子图
线性
- lmplot 回归图
- heatmap 热力图
import pandas as pd
df = pd.read_csv('position_gbk.csv', encoding='gbk')
%matplotlib inline
- 折线图 plot
- 柱形图/条形图 bar
- 直方图 hist
- 箱线图 box
- 密度图 kde
- 面积图 area
- 散点图 scatter
- 散点图矩阵 scatter_matrix
- 饼图 pie
1. 折线图 plot
df.avg.plot()
# 统计不同薪资的出现次数
df.avg.value_counts().sort_index().plot()
为什么要加 .sort_index()? —— 使索引(即第一列)从低到高排序
2. 柱形图/条形图 bar
# 法1
df.avg.value_counts().sort_index().plot(kind='bar')
# 法2
df.avg.value_counts().sort_index().plot.bar()
- 堆积柱形图
df.pivot_table(index='city', columns='education', values='avg', aggfunc='count').plot.bar(stacked=True)
- 百分比堆积柱形图
需要数据处理时用apply函数变化一下,没有直接的参数可以使用
- 变为横向(条形图)
df.pivot_table(index='city', columns='education', values='avg', aggfunc='count').plot.barh(stacked=True) # h为水平轴的意思
3. 直方图 hist
# 带网格
df.avg.hist()
# 不带网格
df.avg.plot.hist() # 参数 bins:切多少个箱体
- 多重直方图:在一张图里展示多个直方图,要使用多列(education 和 avg)
df.groupby('education').apply(lambda x:x.avg).unstack().T.plot.hist(alpha = 0.8) # 透明度
- 堆叠多重直方图:
df.groupby('education').apply(lambda x:x.avg).unstack().T.plot.hist(alpha = 0.5, stacked=True, bins=30)
- 变为水平条形图:
df.groupby('education').apply(lambda x:x.avg).unstack().T.plot.hist(alpha = 0.5, stacked=True, bins=30, orientation = 'horizontal')
4. 箱线图 box
# 箱体:列
df.groupby('education').apply(lambda x:x.avg).unstack().T.plot.box()
# 法2
df.boxplot(column = 'avg', by = 'education')
5. 密度图 kde
df.avg.plot.kde() # 薪资落在某个区间范围的概率(面积)
5. 面积图 area
df.groupby('education').apply(lambda x:x.avg).unstack().T.plot.area()
df.pivot_table(index='avg', columns='education', aggfunc='count', values='positionId').plot.area()
- 百分比面积图
# 加一个apply()函数计算百分比
df.pivot_table(index='avg', columns='education', aggfunc='count', values='positionId').apply().plot.area()
6. 散点图 scatter
df.groupby('companyId').aggregate(['mean','count','max']).avg.plot.scatter(x='mean',y='count')
7. 散点图矩阵 scatter_matrix
pd.plotting.scatter_matrix(matrix)
- 可以通过query条件过滤数据
pd.plotting.scatter_matrix(matrix.query('count
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?