admin管理员组文章数量:1037775
机器学习绘图Seaborn学习
Seaborn是基于Matplotlib的一个高级数据可视化库。它的语法比较简单,用起来很方便。Seaborn可以用来生成多种图形,例如散点图、箱线图、热力图等。它也内置了一些数据集,可以用于测试和练习。
相应的,与matplotlib
包相比,可操作的地方比较少
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
,代码如下:
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()参数如下:
参数 作用
data DataFrame 数据集
x 分类变量
y 数值变量
hue 按类别分色
order 自定义类别顺序
palette 颜色方案(如 "Blues"、"pastel")
orient 'v' 竖向(默认) 或 'h' 横向
width 控制箱子的宽度(默认 0.8)
也可以用catplot
进行绘制箱线图。
可以看出,两者绘制出的图其实是有区别的,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
包相比,可操作的地方比较少
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
,代码如下:
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()参数如下:
参数 作用
data DataFrame 数据集
x 分类变量
y 数值变量
hue 按类别分色
order 自定义类别顺序
palette 颜色方案(如 "Blues"、"pastel")
orient 'v' 竖向(默认) 或 'h' 横向
width 控制箱子的宽度(默认 0.8)
也可以用catplot
进行绘制箱线图。
可以看出,两者绘制出的图其实是有区别的,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学习 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1748260979a2276725.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论