Seaborn工具学习笔记
本文记录了我在学习seaborn这一工具的心路历程,仅仅代表我个人的一些观点与看法,欢迎各位大佬指点问题。
简介
Seaborn是一种基于matplotlib的图形可视化库,用来做绘图的,在数据分析领域很常用,是个很不错的工具。
我下面主要写写我目前在配置和使用这个工具遇到的一些问题
安装以及配环境
环境配置:Anaconda(开发必备)
要求python3.8及以上(建议就选3.8,太高的版本可能会不兼容)
详细步骤如下:
1.下载Anaconda然后无脑安装。
链接: (pan.baidu.com/link/zhihu/…)
注:Anaconda3安装路径中不要包含中文字符和空格,二是一定要选择
“Add Anaconda3 to my PATH environment variable”选项
2.下载官网样例代码
这边已经帮大家整理好了 上链接!
xhr1314.top/Mie/seaborn.zip
复制上述链接,然后粘贴到浏览器网址处,即可下载示例代码压缩包,将代码压缩到自己的工作区文件夹。
示例代码文件结构如下:
- exanples:
该文件夹下面包含所有绘制seaborn库中图形的示例代码
- seaborn-data-master: 这个文件夹原来是不在这个seaborn文件夹内的,这个文件夹内容里面是官网所给的内置数据集,这文件夹是从github.com/seaborn/sea… 这里直接解压到这个文件夹内的 运行示例代码时,需要联网去下载内置数据集,我们可以直接下载这个数据集,加速代码执行速度。
- requirements.txt:里面含有seaborn以及相关库的版本
numpy==1.19.4
pandas==1.1.4
Pillow==9.4.0
seaborn==0.12.2
3.安装seaborn及相关库
在命令行窗口或者Pycharm终端下进入刚刚解压所在的文件夹seaborn,如下图所示
执行如下命令:
conda update conda
conda update anaconda
conda update --all
//上面三条命令可以先尝试运行,如果发现要运行很久,可以直接跳过这三条命令
conda create --name python38 python=3.8 //创建python38虚拟环境并知道python3.8版本
activate python38 //从base环境切换到python38
pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com //用阿里云镜像安装seaborn及相关库
这里需要注意的时,如果此时是在pycharm平台进行命令执行的话,需要进行环境以及版本切换 具体过程网上有相关讲解
优化代码
对代码(example目录下,共需修改、运行代码42份)进行封装,并保存下来作图的结果
优化后的代码:
"""
Anscombe's quartet
==================
_thumb: .4, .4
"""
import seaborn as sns
import matplotlib.pyplot as plt
import os // 引入两个新的依赖
#设定绘图样式
name = "ticks"
sns.set_theme(style=name)
# 加载内置数据集
df = sns.load_dataset("anscombe")
# 显示每个数据集中的线性回归结果
sns.lmplot(
data=df, x="x", y="y", col="dataset", hue="dataset",
col_wrap=2, palette="muted", ci=None,
height=4, scatter_kws={"s": 50, "alpha": 1}
)
# 保存结果,生成图片,os.path.basename(__file__) 能获取该py文件的文件名
plt.savefig(r".\result%s.png" % os.path.basename(__file__))
关于Seaborn 怎么用
实战
要求根据以下数据用seaborn绘制出相似的图形
分析过程
1.先去官网找类似图形
2.再根据对应示例代码去修改。
代码:
"""
Line plots on multiple facets
=============================
_thumb: .48, .42
"""
import seaborn as sns
import matplotlib.pyplot as plt
import os
import pandas as pd
# 数据
iterationNums = [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59]
percentage = [0.32, 0.275, 0.35, 0.4, 0.36, 0.36, 0.33, 0.365, 0.345, 0.375, 0.455, 0.375, 0.445, 0.465, 0.46, 0.44, 0.435, 0.445, 0.525, 0.455, 0.5, 0.45, 0.5, 0.495, 0.525, 0.48, 0.48, 0.53, 0.425, 0.55, 0.595, 0.66, 0.575, 0.565, 0.54, 0.525, 0.58, 0.55, 0.55, 0.6]
#封装成字典
data = {
"iterationNums":iterationNums,
"percentage":percentage
}
#用pandas库中的方法来封装成DataFrame
example = pd.DataFrame(data)
name = "ticks"
sns.set_theme(style=name)
# 将选项板定义为列表以指定精确值
palette = sns.color_palette("rocket_r")
# 用seabor库中的方法在两个面上绘制线条
sns.relplot(
data=example,
x="iterationNums", y="percentage",
kind="line", palette=palette,
height=5, aspect=.75, facet_kws=dict(sharex=False),
)
# 保存结果,生成图片
plt.savefig(r".\result%s.png" % os.path.basename(__file__))
结果:与想要的样式基本一致
心得
在研究这个工具怎么用的过程中,遇到个问题,一直不知道怎么用自己本地的数据集来绘图,当时没有太细看官网文档的API,后面意识到
data可以不用sns.load_dataset来封装,我当时老是想着把自己的数据集用这个方法来加载
下图是这个方法的源码,翻译过来大意是该方法只能加载官方内置的数据集(csv文件),而不能加载自己本地的数据集,当时就一直在想怎么加载本地的数据集,后面才发现重点不是在这里。
重点应该是后面那个用来绘图的sns.replot方法(这里以replot方法为例),我们来看下该方法源码中对于参数的说明
参数data允许的数据结构可以是pandas.DataFrame,还有numpy.ndarray,以及map和suquence
> 关于pandas.DataFrame可以看看这篇文章,类似一个二维数组
总结
这篇文章大致讲了一下seaborn的安装以及环境搭建和入门教程,关于具体参数要怎么去选择还得看看这篇文章
码字不易,希望同学们能给我点个赞呀!!!