一、Seaborn介绍
1.1 定位:Matplotlib的众多的扩展之一
Seaborn:本质是Matplotlib的众多的扩展之一。
1.2 优势:Seaborn与Matplotlib对比:绘制鸢尾花的花瓣和花萼的长度的散点图
鸢尾花:花瓣(petal)、花萼(sepal)
需求:画一个花瓣和花萼的长度的散点图,并且点的颜色要区分鸢尾花的种类。
1.
从本地电脑中,读取数据,生成一个DataFrame:
2.
查看下鸢尾花的名字,有以下三种:
3.使用Matplotlib来绘图
- 用字典,把花名与颜色一一对应起来:
- 我的疑问:为什么这里是个zip?
g是一个groupby对象,它本质是一个字典:
scatter:是散点图
4.用seaborn来绘图:一句话搞定。
hue:按照种类来分配颜色
1.3 python的可视化工具总览
每个颜色:理解为一个cluster
二、Seaborn实现直方图、密度图
2.1 直方图:传统方法绘制,matplotlib
1.通过matplotlib来绘制直方图:
2.
通过pandas库的series数据结构,自带的绘图方法:绘制密度图:
2.2 直方图:用seaborn扩展包来绘图
1.各参数:
2.
同时包含直方图(hist)、密度图(kde):
3.rug参数:
4.
2.3 密度图:用kdeplot函数绘制
1.
各参数
2.
3.弃
因为Seaborn包本质是Matplotlib的一个扩展:
所以,Seaborn可以通过函数,来直接调用Matplotlib的本身具备的一些api:
三、Seaborn实现热力图、柱状图
3.1 数据准备
1.
适合学习、做实验:Seaborn提供了很多内置的数据集,通过线上直接读取。
- 为什么我线上读取不出来:
https://github.com/mwaskom/seaborn-data
2.
好吧,还是下载csv文件到电脑本地:用Pandas直接本地读取吧
读取为一个DataFrame:
3.
上述的DataFrame看着不是很方便,因为有的数据是隐藏了,且结构不合理。
所以,调整如下:刚好三列各有各的位置:
4.
上述存在的问题是:
month月份是按照字母的a-z顺序排序的。可是,应该从January为起始点,怎么办呢?
- 先将英文月份转换为日期对象,并新增一列:------- 我的疑问:这里的%B什么意思?
- 对该新增列进行排序;
- drop丢弃掉这一个新增列
3.2 热力图:sns.heatmap(),数据的分布是否密集
1.
各参数:
2.
2.
显示下各个点的具体数据值:
3.3. 柱状图:sns.barplot()
1.数据准备
- 每年,一共有多少个
- 默认,sum是一列的总和。
2.
3.
对比,以前的Matplotlib绘制柱状图:
Seaborn绘制的图,确实更精致好看。
四、Seaborn设置图形的显示效果:主题、context
4.1 使用传统的matplotlib绘制
1.用matplotlib绘制一个曲线图:
- 用Numpy库生成一个数组array,元素是等差数列:从0到14,切成100等分--------- 用来做x横轴坐标
- 同理,用Numpy库,生成两条曲线的y轴
2.
为了后续重复使用上述指令,封装成一个函数:
4.2 Seaborn绘图:5种内置主题
1.
默认的主题
2
Seaborn提供的5种主题:
- 黑底:
- 黑底,有网格:
- 白底
- 白底、有网格
4.3 自定义的微调上述主题的参数
虽然提供了5种内置主题,但是也是可以微调的。
1.
2.
3.
清空对于风格的自定义设置:
4.4 Seaborn绘图:4种内置context
1.
- 内置的四种context
- 发现:越来越大
4.5 自定义的微调上述context的参数
1.plotting_context()
查看当前context的参数包:
2.set_context()
五、Seaborn强大的调色功能
5.1 Matplotlib绘制
一个画布中有四条曲线:
5.2. 出错节(可跳过):本质:没有跟老师一模一样:)
出错:
解决:
是百分号%,要在s的前面!~
(40min没找出问题所在。。。)
出错2:
解决:
5.3 补:python中的%s%是什么意思
1.
2.
https://zoejoyuliao.medium.com/%E6%AF%94%E8%BC%83-python-%E7%9A%84%E6%A0%BC%E5%BC%8F%E5%8C%96%E5%AD%97%E4%B8%B2-formatting-str-format-f-string-6d28487ba1d2
5.3 Seaborn绘图:sns.color_palette()调色板
1.
3.
更改当前的色板,为新的一套色板:
4.
使用这一套新的色板,来绘图:
5.
恢复到原先的默认状态;
5.4 临时的更改系统的色板:with语句内
1.
with语句内:临时的色板
with语句外:系统默认的色板
有点像,局部区域。比如,变量的作用域。
2.
色板里,有十种颜色,够用了。没必要自己去设置和增加其他的色块。
如果真的绘图需要更多的颜色呢?
六、帮助文档
查看帮助文档:https://seaborn.pydata.org/tutorial.html
Comments | NOTHING