admin管理员组

文章数量:1037775

机器学习绘图Seaborn学习

Seaborn是基于Matplotlib的一个高级数据可视化库。它的语法比较简单,用起来很方便。Seaborn可以用来生成多种图形,例如散点图、箱线图、热力图等。它也内置了一些数据集,可以用于测试和练习。

相应的,与matplotlib包相比,可操作的地方比较少

代码语言:python代码运行次数:0运行复制
import seaborn as sns

import matplotlib.pyplot as plt

iris = sns.load\_dataset('iris')

sns.scatterplot(x='sepal\_length', y='petal\_length', hue='species', data=iris)

plt.show()

请注意,以下示例都是以0.12.2版本的seaborn进行,版本不同可能写法不一样,所以运行相同的代码报错时,请自行检查seaborn库版本

加载seaborn自带的数据库

首先,需要查询seaborn有哪些自带的数据库,代码如下:

代码语言:python代码运行次数:0运行复制
import seaborn as sns



data\_base = sns.get\_dataset\_names()

print(data\_base)   

但正常执行这个代码后,很可能会提示网络超时的报错,因为数据集是存储在github上的,所以运行上面代码时,建议挂个梯子。

正常输入如下:

代码语言:bash复制
['anagrams', 'anscombe', 'attention', 'brain\_networks', 'car\_crashes', 'diamonds', 'dots', 'dowjones', 'exercise', 'flights', 'fmri', 'geyser', 'glue', 'healthexp', 'iris', 'mpg', 'penguins', 'planets', 'seaice', 'taxis', 'tips', 'titanic', 'anagrams', 'anagrams', 'anscombe', 'anscombe', 'attention', 'attention', 'brain\_networks', 'brain\_networks', 'car\_crashes', 'car\_crashes', 'diamonds', 'diamonds', 'dots', 'dots', 'dowjones', 'dowjones', 'exercise', 'exercise', 'flights', 'flights', 'fmri', 'fmri', 'geyser', 'geyser', 'glue', 'glue', 'healthexp', 'healthexp', 'iris', 'iris', 'mpg', 'mpg', 'penguins', 'penguins', 'planets', 'planets', 'seaice', 'seaice', 'taxis', 'taxis', 'tips', 'tips', 'titanic', 'titanic', 'anagrams', 'anscombe', 'attention', 'brain\_networks', 'car\_crashes', 'diamonds', 'dots', 'dowjones', 'exercise', 'flights', 'fmri', 'geyser', 'glue', 'healthexp', 'iris', 'mpg', 'penguins', 'planets', 'seaice', 'taxis', 'tips', 'titanic']

下面加载企鹅数据集penguins,代码如下:

代码语言:python代码运行次数:0运行复制
import seaborn as sns



# 加载企鹅数据集

data = sns.load\_dataset('penguins')

print(data)

data内数据格式如下:

变量分布

使用seaborn查看变量的数据的分布,可以使用下面两种方法查看。

boxplot箱线图

绘制箱线图代码如下:

代码语言:python代码运行次数:0运行复制
import seaborn as sns

import matplotlib.pyplot as plt



# 加载企鹅数据集

data = sns.load\_dataset('penguins')



# 箱线图

# sns.boxplot(data=data, x='bill\_length\_mm')

sns.boxplot(x='species', y='bill\_length\_mm', data=data)

plt.show()  # 显示图形

需要注意下,要使用plt.show()让图显示,不然是没有反应的。sns.boxplot()参数如下:

代码语言:bash复制
参数    作用

data    DataFrame 数据集

x    分类变量

y    数值变量

hue    按类别分色

order    自定义类别顺序

palette    颜色方案(如 "Blues"、"pastel")

orient    'v' 竖向(默认) 或 'h' 横向

width    控制箱子的宽度(默认 0.8)

也可以用catplot进行绘制箱线图。

代码语言:python代码运行次数:0运行复制

可以看出,两者绘制出的图其实是有区别的,catplot绘制的图默认没有上轴和右轴。

displot直方图

相关代码如下:

代码语言:python代码运行次数:0运行复制
import seaborn as sns

import matplotlib.pyplot as plt



# 加载企鹅数据集

data = sns.load\_dataset('penguins')



sns.displot(data=data, x='bill\_length\_mm')

plt.show()

图中纵轴表示落在该范围内的个数。

类似的histplot,但histplot是有上轴和右轴的。

displot不止是直方图,也可以绘制其他形式的图。

displot一些参数
hue
代码语言:python代码运行次数:0运行复制
import seaborn as sns

import matplotlib.pyplot as plt



# 加载企鹅数据集

data = sns.load\_dataset('penguins')



sns.displot(data=data, x='species',hue='species')  # hue参数表示按照species列进行不同颜色分类

plt.show()
kde

用displot绘制kde曲线(核密度估计曲线)

代码语言:python代码运行次数:0运行复制
import seaborn as sns

import matplotlib.pyplot as plt



# 加载企鹅数据集

data = sns.load\_dataset('penguins')



sns.displot(data=data, x='bill\_length\_mm',kind='kde')  # shrink参数控制柱状图相邻柱子间的宽度

plt.show()

kdeplot就是专门绘制kde曲线的函数

代码语言:python代码运行次数:0运行复制
import seaborn as sns

import matplotlib.pyplot as plt



# 加载企鹅数据集

data = sns.load\_dataset('penguins')



sns.kdeplot(data=data, x='bill\_length\_mm')

plt.show()
cut

cut=0,表示超出取值范围的值不用。

代码语言:python代码运行次数:0运行复制
import seaborn as sns

import matplotlib.pyplot as plt



# 加载企鹅数据集

data = sns.load\_dataset('penguins')



sns.displot(data=data, x='bill\_length\_mm',kind='kde',cut=0)  # shrink参数控制柱状图相邻柱子间的宽度

plt.show()
直方图叠加kde(kde=True)
代码语言:python代码运行次数:0运行复制
import seaborn as sns

import matplotlib.pyplot as plt



# 加载企鹅数据集

data = sns.load\_dataset('penguins')



sns.displot(data=data, x='bill\_length\_mm',kde=True)  # shrink参数控制柱状图相邻柱子间的宽度

plt.show()

同理,kde曲线也能使用hug='species'.

坐标轴取对数(log_scale=True))
代码语言:python代码运行次数:0运行复制
import seaborn as sns

import matplotlib.pyplot as plt



# 加载企鹅数据集

data = sns.load\_dataset('penguins')



sns.displot(data=data, x='bill\_length\_mm',kind='kde',log\_scale=True)  # shrink参数控制柱状图相邻柱子间的宽度

plt.show()

读取本地文件并画图

代码语言:python代码运行次数:0运行复制
import seaborn as sns

import matplotlib.pyplot as plt

import pandas as pd



file = r'C:\Users\Lenovo\Desktop\test\seaborn\test.xlsx'



# 加载文件

data = pd.read\_excel(file)

sns.kdeplot(data=data, x='bill\_length\_mm')

plt.show()

print(data)

文件内的内容如下:

官方文档

参考文件

机器学习绘图Seaborn学习

Seaborn是基于Matplotlib的一个高级数据可视化库。它的语法比较简单,用起来很方便。Seaborn可以用来生成多种图形,例如散点图、箱线图、热力图等。它也内置了一些数据集,可以用于测试和练习。

相应的,与matplotlib包相比,可操作的地方比较少

代码语言:python代码运行次数:0运行复制
import seaborn as sns

import matplotlib.pyplot as plt

iris = sns.load\_dataset('iris')

sns.scatterplot(x='sepal\_length', y='petal\_length', hue='species', data=iris)

plt.show()

请注意,以下示例都是以0.12.2版本的seaborn进行,版本不同可能写法不一样,所以运行相同的代码报错时,请自行检查seaborn库版本

加载seaborn自带的数据库

首先,需要查询seaborn有哪些自带的数据库,代码如下:

代码语言:python代码运行次数:0运行复制
import seaborn as sns



data\_base = sns.get\_dataset\_names()

print(data\_base)   

但正常执行这个代码后,很可能会提示网络超时的报错,因为数据集是存储在github上的,所以运行上面代码时,建议挂个梯子。

正常输入如下:

代码语言:bash复制
['anagrams', 'anscombe', 'attention', 'brain\_networks', 'car\_crashes', 'diamonds', 'dots', 'dowjones', 'exercise', 'flights', 'fmri', 'geyser', 'glue', 'healthexp', 'iris', 'mpg', 'penguins', 'planets', 'seaice', 'taxis', 'tips', 'titanic', 'anagrams', 'anagrams', 'anscombe', 'anscombe', 'attention', 'attention', 'brain\_networks', 'brain\_networks', 'car\_crashes', 'car\_crashes', 'diamonds', 'diamonds', 'dots', 'dots', 'dowjones', 'dowjones', 'exercise', 'exercise', 'flights', 'flights', 'fmri', 'fmri', 'geyser', 'geyser', 'glue', 'glue', 'healthexp', 'healthexp', 'iris', 'iris', 'mpg', 'mpg', 'penguins', 'penguins', 'planets', 'planets', 'seaice', 'seaice', 'taxis', 'taxis', 'tips', 'tips', 'titanic', 'titanic', 'anagrams', 'anscombe', 'attention', 'brain\_networks', 'car\_crashes', 'diamonds', 'dots', 'dowjones', 'exercise', 'flights', 'fmri', 'geyser', 'glue', 'healthexp', 'iris', 'mpg', 'penguins', 'planets', 'seaice', 'taxis', 'tips', 'titanic']

下面加载企鹅数据集penguins,代码如下:

代码语言:python代码运行次数:0运行复制
import seaborn as sns



# 加载企鹅数据集

data = sns.load\_dataset('penguins')

print(data)

data内数据格式如下:

变量分布

使用seaborn查看变量的数据的分布,可以使用下面两种方法查看。

boxplot箱线图

绘制箱线图代码如下:

代码语言:python代码运行次数:0运行复制
import seaborn as sns

import matplotlib.pyplot as plt



# 加载企鹅数据集

data = sns.load\_dataset('penguins')



# 箱线图

# sns.boxplot(data=data, x='bill\_length\_mm')

sns.boxplot(x='species', y='bill\_length\_mm', data=data)

plt.show()  # 显示图形

需要注意下,要使用plt.show()让图显示,不然是没有反应的。sns.boxplot()参数如下:

代码语言:bash复制
参数    作用

data    DataFrame 数据集

x    分类变量

y    数值变量

hue    按类别分色

order    自定义类别顺序

palette    颜色方案(如 "Blues"、"pastel")

orient    'v' 竖向(默认) 或 'h' 横向

width    控制箱子的宽度(默认 0.8)

也可以用catplot进行绘制箱线图。

代码语言:python代码运行次数:0运行复制

可以看出,两者绘制出的图其实是有区别的,catplot绘制的图默认没有上轴和右轴。

displot直方图

相关代码如下:

代码语言:python代码运行次数:0运行复制
import seaborn as sns

import matplotlib.pyplot as plt



# 加载企鹅数据集

data = sns.load\_dataset('penguins')



sns.displot(data=data, x='bill\_length\_mm')

plt.show()

图中纵轴表示落在该范围内的个数。

类似的histplot,但histplot是有上轴和右轴的。

displot不止是直方图,也可以绘制其他形式的图。

displot一些参数
hue
代码语言:python代码运行次数:0运行复制
import seaborn as sns

import matplotlib.pyplot as plt



# 加载企鹅数据集

data = sns.load\_dataset('penguins')



sns.displot(data=data, x='species',hue='species')  # hue参数表示按照species列进行不同颜色分类

plt.show()
kde

用displot绘制kde曲线(核密度估计曲线)

代码语言:python代码运行次数:0运行复制
import seaborn as sns

import matplotlib.pyplot as plt



# 加载企鹅数据集

data = sns.load\_dataset('penguins')



sns.displot(data=data, x='bill\_length\_mm',kind='kde')  # shrink参数控制柱状图相邻柱子间的宽度

plt.show()

kdeplot就是专门绘制kde曲线的函数

代码语言:python代码运行次数:0运行复制
import seaborn as sns

import matplotlib.pyplot as plt



# 加载企鹅数据集

data = sns.load\_dataset('penguins')



sns.kdeplot(data=data, x='bill\_length\_mm')

plt.show()
cut

cut=0,表示超出取值范围的值不用。

代码语言:python代码运行次数:0运行复制
import seaborn as sns

import matplotlib.pyplot as plt



# 加载企鹅数据集

data = sns.load\_dataset('penguins')



sns.displot(data=data, x='bill\_length\_mm',kind='kde',cut=0)  # shrink参数控制柱状图相邻柱子间的宽度

plt.show()
直方图叠加kde(kde=True)
代码语言:python代码运行次数:0运行复制
import seaborn as sns

import matplotlib.pyplot as plt



# 加载企鹅数据集

data = sns.load\_dataset('penguins')



sns.displot(data=data, x='bill\_length\_mm',kde=True)  # shrink参数控制柱状图相邻柱子间的宽度

plt.show()

同理,kde曲线也能使用hug='species'.

坐标轴取对数(log_scale=True))
代码语言:python代码运行次数:0运行复制
import seaborn as sns

import matplotlib.pyplot as plt



# 加载企鹅数据集

data = sns.load\_dataset('penguins')



sns.displot(data=data, x='bill\_length\_mm',kind='kde',log\_scale=True)  # shrink参数控制柱状图相邻柱子间的宽度

plt.show()

读取本地文件并画图

代码语言:python代码运行次数:0运行复制
import seaborn as sns

import matplotlib.pyplot as plt

import pandas as pd



file = r'C:\Users\Lenovo\Desktop\test\seaborn\test.xlsx'



# 加载文件

data = pd.read\_excel(file)

sns.kdeplot(data=data, x='bill\_length\_mm')

plt.show()

print(data)

文件内的内容如下:

官方文档

参考文件

本文标签: 机器学习绘图Seaborn学习