各位大佬好 ,这里是阿川的博客,祝您变得更强
个人主页:在线OJ的阿川
大佬的支持和鼓励,将是我成长路上最大的动力
阿川水平有限,如有错误,欢迎大佬指正
Python 初阶
Python--语言基础与由来介绍
Python--注意事项
Python--语句与众所周知
数据清洗前 基本技能
数据分析---技术栈和开发环境搭建
数据分析---Numpy和Pandas库基本用法及实例
数据可视化前 必看
数据分析---三前奏:获取/ 读取/ 评估数据
数据分析---数据清洗操作及众所周知
数据分析---数据整理操作及众所周知
数据分析---统计学基础及Python具体实现
目录
- 可视化介绍
- 一维图表
-
- 补充的话
- 二维图表
-
- 补充的话
- 多维图表
-
- 补充的话
- 互相对比
可视化介绍
可视化 是数据分析中 很重要 的一个环节
- 一图胜千言
- 发现隐藏的关系 、趋势 、影响
- 可视化本身也是一种探索数据 ,分析数据 的方式
- 可视化中的图表可从维度 主要分为一维图表 和二维图表 和多维图表 及互相对比图表
- 主要用的库 为:seaborn 和matplotlib
- 在cmd 中安装pip install seaborn 和pip install matplotlib
阿里云的镜像源:
python
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
- 在jupyter中导入
- import seaborn as sns
- import matplotlib.pyplot as plt
- 大部分我们使用的功能 都在pyplot的子模板下
一维图表
一维图表
- 直方图 Histogram
- 表示数据分布
- 有助于 展示数据频率分布
- 横轴 :数据范围
- 纵轴 :个数
- 即一个数值变量.
- 表示数据分布
- sns.histplot(变量名)
- 密度图 KernelDensity
- 表示数据分布
- 用平滑的曲线 ,更易看出分布形状
- 表示数据分布
- sns.kdeplot(变量名)
- 箱型图 BoxPlot
- 其中上界为最大值 或者上界等于第三四分位数加上1.5×四分位距 ,跟上界 进行比较 ,谁小 取谁,作为上界
- 其中下界为最小值 或者下界等于第一四分位数减去1.5×四分位距 ,跟下界 进行比较 ,谁大 取谁,作为下界
这样做的好处是可以帮助我们发现 数据当中的异常值
- sns.boxplot(变量名)
- 小提琴图 ViolinPlot
- 结合了密度图 、直方图 、箱形图
- 横轴 :数据分布
- 纵轴 :概率密度
- sns.violinplot(变量名)
补充的话
上述这些一维图表中参数可以 传入DataFrame
(DataFrame名,x=" ",y=" ")
若要更改 一维图表中的标题标签
plt.title(" ")
更改 x轴标签
plt.xlabel(" ")
更改 y轴标签
plt.ylabel(" ")
因为matplotlib库中默认的字体,它不支持中文 ,所以要自己手动更换支持中文的字体
查看 支持中文的字体,如下:
python
import matplotlib.pyplot as plt
import seaborn as sns
from matplotlib.font_manager import FontManager
font_manager = FontManager()
print(set(f.name for f in font_manager.ttflist))
更换字体,如下:
python
matplotlib.rc("font",family='Heiti TC')
二维图表
- 折线图 LinePlot
- 用于展示连续间隔或时间跨度上数值的变化 ,从而看出趋势变化
- 两个 数值变量
- 加 一个颜色 ,即可多表示一个分类变量
- sns.lineplot(data=DataFrame名,x=" ",y=" ")
- 饼图 PiePlot
- 展示各个分类对应数值 之间的比例
- 一个分类变量 ,一个数值变量
- plt.pie(DataFrame名["数值变量列]",labels=DataFrame名["分类变量列"])
- autopct ="%.1f%%" 该参数可以显示百分比 ,%可以告诉系统 ,这是用来展示格式字符串 ,%%告诉系统 ,这是百分比结尾
- 散点图 ScatterPlot
- 展示两个数值变量关系
- 可以看出两个变量 之间的相关性
- x轴 :一个变量的值
- y轴 :一个变量的值
- 展示两个数值变量关系
- sns.scatterplot(DataFrame名,x=" ",y=" ")
- 或者 sns.scatterplot(x=DataFrame[" "],y=DataFrame[" "])
- 条形图 BarPlot
- 横轴 :分类类别
- 纵轴 :数值
- 一个分类变量 加一个数值变量
- sns.barplot(data=DataFrame名,x=" ",y=" ")
- estimator 该参数可以指定 纵轴的高度对应所属分类下的所有值的样式 ,不写 该参数,则默认 纵轴高度对应所属分类下的所有值的平均值
但在条形图基础上 ,若纵轴 想记录个数 ,则用
- 计数图 countplot
- sns.countplot(data=DataFrame名, x=" ") Y轴自动聚合成x里面的个数
补充的话
上述图表的颜色 有点不合时宜 ,更新颜色
color="颜色 " 或者 sns. set_palette(" 色盘")
常用的颜色有:
这里推荐这个网站:中国色,里面有非常多美丽的颜色,调色师、设计师必备哦
常用 的色板有:
多维图表
更多维
用面积大小 和颜色 来区分新的变量
- 气泡图
-
引入新的数值变量 ,用面积大小 来区分
-
plt.scatterplot(DataFrame,x=" ",y=" ",size=" ")
-
- 热力图 Heatmap
- 两个分类变量 加一个数值变量
- x轴 和y轴 分别表示不同的分类变量 ,颜色 代表数值变量
- plt.heatmap(annot=True)
- annot 该参数表示具体数值展示出来
- 复式条形图
- 在条形图的基础上 引入多个条柱 ,则表示多个分类变量
- sns.barplot(data=DataFrame名,x=" ",y=" ",hue="分类变量 " )
补充的话
在基础图表的基础上 加一种颜色 加一下面积大小 ,即可表示 更多的变量
plt.scatterplot(DataFrame,x=" ",y=" ",hue=" ",size=" ")
更改图例位置 :
plt.legend(bbox_to_anchor=( 数字1 ,数字2))
- 数字1 中有零/一可能性 ,数字2 中有零/一可能性
- 数字一 的零 表示图例在图表的左边 ,一 表示在图表的右边。
- 数字二 的零 表示图例在图表的下面 ,一 表示在图表的上面。
互相对比
将这些图表互相对比 ,挖掘 出更多信息
在同一个单元格里输入 多个 相同的图表的公式
最后plt.show() 出来
此时多个相同图表 就在一个图上了。
- binwidth 该参数可以改变图表的长度
- label 该参数为图例标签
例如以直方图 为例
那么最后呈现的结果若没有 展现出图例标签 ,则再加一个plt.legend()
密度图 也是同样的道理 ,但不需要binwidth 参数,因为它是一条平滑的曲线。
箱形图
- 没有 label和binwidth参数 ,只有y轴/x轴参数
小提琴图 也是同样的道理
但会显得很拥挤 ,更好选择是将分类变量 作为x轴的变量 ,即x=" "
若想将不同的类型的图 并排放在一起
fig,axes=plt.subplots(行,列,figsize=(高,宽))
- fig 代表大图
- axis 代表小图
这里是绘制空白图
在 想要的图形种类中 ,加入ax参数=axes[n]
- n表示第n个子图 ,n从0开始
配对图 pairplot
- 能将DataFrame中的数值变量 两两关系分布出来
- 将各变量 的分布 用直方图绘制出来
- 将不同变量 两两之间的关系 绘制成散点图
- sns.pairplot(,hue=" 分类变量")
- 可以探讨不同分类变量 之间的数值关系
好的,到此为止啦,祝您变得更强
想说的话
实不相瞒,写的这篇博客写了十一个小时(加上自己学习和纸质笔记,共十三小时 吧),很累 ,希望大佬支持
道阻且长 行则将至 |
---|
个人主页:在线OJ的阿川大佬的支持和鼓励,将是我成长路上最大的动力