【数据分析入门】Seaborn[散点图、条形图、计数图、热力图、箱型图、小提琴图]

这篇具有很好参考价值的文章主要介绍了【数据分析入门】Seaborn[散点图、条形图、计数图、热力图、箱型图、小提琴图]。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


  Seaborn基于 matplotlib 开发 的高阶Python 数据可视图库,用于绘制优雅、美观的统计图形。
  使用下列别名导入该库:

>>> import matplotlib.pyplot as plt
>>> import seaborn as sns

  使用 Seaborn 创建图形的基本步骤
  1.准备数据:我们要确保绘制的数据集
  2.设定画布外观:在创建图形之前,我们可以设定画布的外观,例如设置背景颜色调整坐标轴范围等。可以使用 Matplotlib 进行这些设置。
  3.使用 Seaborn 绘图导入 Seaborn 库并使用其中的函数来绘制图形。Seaborn 也提供了许多高级绘图函数和样式选项,绘图更加简单和美观了。
  4.自定义图形:如果需要进一步自定义图形,可以使用 Matplotlib 的函数和方法来进行个性化设置。Seaborn 库是基于 Matplotlib 的,所以我们可以 在 Seaborn 绘图之后使用 Matplotlib 的功能对图形进行自定义

>>> import matplotlib.pyplot as plt
>>> import seaborn as sns
# 导入必要的库 matplotlib.pyplot 和 seaborn

>>> tips = sns.load_dataset("tips")
# 通过 sns.load_dataset("tips") 加载了一个名为 "tips" 的示例数据集
>>> sns.set_style("whitegrid")
# 使用 sns.set_style("whitegrid") 设置绘图的样式

>>> g = sns.lmplot(x="tip", y="total_bill", data=tips, aspect=2)
# 使用 sns.lmplot() 创建了一个散点图,并将其赋值给变量 g
>>> g = (g.set_axis_labels("Tip","Total bill(USD)").set(xlim=(0,10),ylim=(0,100))) 
# 连续调用了 set_axis_labels() 和 set() 方法来设置坐标轴标签、坐标轴范围等自定义设置

>>> plt.title("title")
>>> plt.show(g) 
# 使用 plt.title() 方法设置了图形的标题,并通过 plt.show() 函数显示图形

一、数据

>>> import pandas as pd
>>> import numpy as np
# 导入 pandas 和 numpy 库,并创建了一个形状为 (10, 12) 的随机数组 uniform_data
>>> uniform_data = np.random.rand(10, 12)
# 使用 np.random.rand(10, 12) 创建一个形状为 (10, 12) 的随机数组赋值给变量 uniform_data。这个数组中的元素是从 0 到 1 之间的随机数
>>> data = pd.DataFrame({'x':np.arange(1,101), 'y':np.random.normal(0,4,100)})
# 使用 pd.DataFrame() 函数创建一个 DataFrame 对象 data。在创建过程中,使用字典类型的数据结构来指定要构建的 DataFrame 的列名和对应的数据

  Seaborn 提供了内置数据集,以下加载两个示例数据集:titanic 和 iris:

>>> titanic = sns.load_dataset("titanic")
# 加载 "titanic" 数据集
# 这里使用 sns.load_dataset() 函数加载了名为 "titanic" 的数据集,并将其赋值给变量 titanic。该数据集包含有关泰坦尼克号乘客的信息,如乘客等级、性别、年龄、是否存活等
>>> iris = sns.load_dataset("iris")
# 这里使用 sns.load_dataset() 函数加载了名为 "iris" 的数据集,并将其赋值给变量 iris。这个数据集记录了鸢尾花的一些测量数据,包括花萼长度、花萼宽度、花瓣长度、花瓣宽度以及鸢尾花的类别(山鸢尾、变色鸢尾和维吉尼亚鸢尾)

二、画布外观

  现在我们创建一个大小为 (5, 6) 的画布和一个子图,使用 plt.subplots() 函数创建一个画布并返回包含画布和子图的元组。figsize=(5,6) 参数指定了画布的大小为宽度为 5 英寸,高度为 6 英寸。

>>> f, ax = plt.subplots(figsize=(5,6))
# 创建画布与子图

2.1 Seaborn样式

  接下来,我们使用 Seaborn 库设置或重置默认值设置一些 Matplotlib 参数。通过这些设置,我们就可以控制绘图的默认样式Matplotlib 参数

>>> sns.set() # 使用 sns.set() 函数将 Seaborn 库的默认参数设置为默认值
>>> sns.set_style("whitegrid") 
# 使用 sns.set_style() 函数将 Seaborn 的样式设置为 "whitegrid",即白色网格样式
# 设置或重置 Seaborn 默认值
>>> sns.set_style("ticks", {"xtick.major.size":8,"ytick.major.size":8})
# 设置 matplotlib 参数
>>> sns.axes_style("whitegrid")
# 设置 matplotlib 参数

2.2 上下文函数

  我们还可以使用 Seaborn 库设置上下文,并设置一些参数。通过设置上下文和相关参数,就可以 控制绘图的整体样式和元素大小 了。

>>> sns.set_context("talk") # 将上下文设置为 "talk"
# 使用 sns.set_context() 函数将上下文设置为 "talk"
>>> sns.set_context("notebook",font_scale=1.5,rc={"lines.linewidth":2.5}) # 将上下文设置为"notebook",缩放字体,覆盖参数映射
# 使用 sns.set_context() 函数将上下文设置为 "notebook",这将恢复默认的上下文设置
# font_scale=1.5 参数将字体缩放比例设置为 1.5 倍
# rc={"lines.linewidth": 2.5} 参数将覆盖参数映射,将线条宽度设置为 2.5

2.3 调色板

  现在,我们该来用 Seaborn 库设置调色板的颜色了。

>>> sns.set_palette("husl",3) # 定义调色板
# 定义调色板为 "husl" 并设置颜色个数为 3
# 使用 sns.set_palette() 函数将调色板设置为 "husl",并指定要使用的颜色个数为 3
>>> sns.color_palette("husl") # 使用 with 临时设置调色板
# 使用 sns.color_palette() 函数在上下文管理器中临时设置调色板为 "husl"
# 返回一个包含 HUSL 调色板颜色的列表,供后续使用
>>> flatui = ["#9b59b6","#3498db","#95a5a6","#e74c3c","#34495e","#2ecc71"]
>>> sns.set_palette(flatui)
# 设置调色板
# 定义名为 flatui 的自定义调色板,其中包含了 6 种颜色的代码
# 通过 sns.set_palette() 函数将调色板设置为自定义的颜色列表。

三、使用 Seaborn 绘图

3.1 坐标轴栅格

  试着 用 Seaborn 库绘制不同类型的图形 。通过这些绘图函数,我们就可以轻松绘制具有条件关系的子图栅格分类图回归模型

>>> g = sns.FacetGrid(titanic,col="survived", row="sex")
# 绘制条件关系的子图栅格
>>> g = g.map(plt.hist,"age")
>>> sns.factorplot(x="pclass",y="survived",hue="sex",data=titanic) 
# 在分面栅格上绘制分类图
>>> sns.lmplot(x="sepal_width",y="sepal_length",hue="species",data=iris)
# 绘制适配分面栅格的数据与回归模型

  接下来我们使用 Seaborn 库绘制不同类型的配对关系图和双变量分布图,即 绘制配对关系的子图栅格双变量分布图核密度估计图

>>> h = sns.PairGrid(iris) # 绘制配对关系的子图栅格
>>> h = h.map(plt.scatter) # 绘制配对的双变量分布
>>> sns.pairplot(iris) # 绘制双变量图的边际单变量图栅格
>>> i = sns.JointGrid(x="x",y="y",data=data)
>>> i = i.plot(sns.regplot,sns.distplot)
>>> sns.jointplot("sepal_length","sepal_width",data=iris,kind='kde')
# 绘制双变量分布

3.2 各类图形

3.2.1 散点图

  使用Seaborn 库绘制含有分类变量的散点图

>>> sns.stripplot(x="species",y="petal_length",data=iris) 
# 含分类变量的散点图
>>> sns.swarmplot(x="species",y="petal_length",data=iris)
# 含分类变量的散点图

  这两种函数都用于在分类变量上绘制散点图,但它们的 布局方式略有不同stripplot 将所有散点都绘制在一条线上,可能会发生重叠;而 swarmplot 会自动调整散点的位置,避免重叠


3.2.2 条形图

  使用 Seaborn 库绘制带有散点图示符的条形图用于显示点估计值和置信区间的情况

>>> sns.barplot(x="sex",y="survived",hue="class",data=titanic)
# 用散点图示符显示点估计值和置信区间

  该条形图在每个分类变量(这里是 “sex”)的每个水平上绘制了一个条形,并 通过散点图示符显示了对应的点估计值和置信区间


3.2.3 计数图

  使用 Seaborn 库绘制了一个计数图用于显示观测数量

>>> sns.countplot(x="deck",data=titanic,palette="Greens_d")
# 显示观测数量
# 使用 sns.countplot() 函数绘制计数图

  其中,x=“deck” 表示 x 轴上的变量是 “deck” 列,data=titanic 指定数据集为 titanic,palette=“Greens_d” 设置调色板为 “Greens_d”
  该计数图会根据 “deck” 列的不同水平绘制相应的条形,并在每个条形上显示观测数量


3.2.4 点图

  使用 Seaborn 库绘制一个柱状图,用于显示点估计和置信区间

# 用柱状图显示点估计和置信区间
>>> sns.pointplot(x="class",y="survived",hue="sex", data=titanic, palette={"male":"g","female":"m"},markers=["^","o"],linestyles=["-","--"])

  其中,x=“class” 表示 x 轴上的变量是 “class” 列,y=“survived” 表示 y 轴上的变量是 “survived” 列,hue=“sex” 表示根据 “sex” 列进行分组,data=titanic 指定数据集为 titanic。palette={“male”: “g”, “female”: “m”} 设置性别分类的颜色,markers=[“^”, “o”] 设置点估计的标记样式,linestyles=[“-”, “–”] 设置置信区间的线条样式。
  该柱状图会在每个分类变量(这里是 “class”)的每个水平上绘制柱形,而 每个柱形的高度代表对应水平的观测均值 。同时,通过点估计和置信区间的方式显示了不同性别的点估计和置信区间


3.2.5 箱型图

  使用 Seaborn 库绘制箱形图

>>> sns.boxplot(x="alive",y="age",hue="adult_male",data=titanic) # 箱形图
# 使用 sns.boxplot() 函数绘制箱形图
# 其中,x="alive" 表示 x 轴上的变量是 "alive" 列,y="age" 表示 y 轴上的变量是 "age" 列,hue="adult_male" 表示根据 "adult_male" 列进行分组,data=titanic 指定数据集为 titanic

>>> sns.boxplot(data=iris,orient="h") # 箱形图
# 使用 sns.boxplot() 函数绘制箱形图。其中,data=iris 指定数据集为 iris,orient="h" 设置箱形图为水平方向
# 该箱形图绘制了数据集 iris 中所有数值型变量的箱形图,以观察它们的分布情况

3.2.6 小提琴图

  使用 Seaborn 库绘制小提琴图
  使用 sns.violinplot() 函数绘制小提琴图。其中,x=“age” 表示 x 轴上的变量是 “age” 列,y=“sex” 表示 y 轴上的变量是 “sex” 列,hue=“survived” 表示根据 “survived” 列进行分组,data=titanic 指定数据集为 titanic。

>>> sns.violinplot(x="age",y="sex",hue="survived",data=titanic)

  该小提琴图会根据不同的年龄(“age”)、性别(“sex”)和生还情况(“survived”)绘制相应的小提琴图,以展示这些变量的分布情况


3.3 回归图

  使用 Seaborn 库绘制了散点图并使用线性回归模型进行拟合

>>> sns.regplot(x="sepal_width", y="sepal_length", data=iris,ax=ax) 
# 绘制与线性回归模型拟合的数据

  使用 sns.regplot() 函数绘制散点图,并使用线性回归模型对数据进行拟合。其中,x=“sepal_width” 表示 x 轴上的变量是 “sepal_width” 列,y=“sepal_length” 表示 y 轴上的变量是 “sepal_length” 列,data=iris 指定数据集为 iris,ax=ax 是可选参数,表示将图形绘制在指定的坐标轴上(ax 是一个坐标轴对象)。
  该散点图将根据 “sepal_width” 和 “sepal_length” 的值绘制散点,并在散点图上使用线性回归模型进行拟合,以展示它们之间的线性关系


3.4 分布图

  使用 Seaborn 库绘制单变量分布图

>>> plot = sns.distplot(data.y,kde=False,color="b")
# 绘制单变量分布

  使用 sns.distplot() 函数绘制单变量分布图,其中,data.y 是指数据集中的 “y” 列,kde=False 表示不显示核密度估计曲线,color=“b” 表示设置颜色为蓝色

  该单变量分布图会 将 “y” 列的分布情况用直方图表示出来,可以通过调整 kde 参数来同时显示核密度估计曲线,同时也可以通过修改 color 参数来更改直方图的颜色


3.5 矩阵图

  使用 Seaborn 库绘制热力图

>>> sns.heatmap(uniform_data,vmin=0,vmax=1) 
# 热力图

  使用 sns.heatmap() 函数绘制热力图,其中,uniform_data是要绘制的数据,vmin=0 表示设置颜色映射的最小值为0,vmax=1 表示设置颜色映射的最大值为1

  该热力图会 根据 uniform_data 的数值大小,在图上以不同颜色的方块呈现,并且颜色的深浅表示数值的大小。通过设置 vmin 和 vmax 参数,可以控制颜色映射的范围。


四、深度自定义

4.1 Axisgrid 对象

>>> g.despine(left=True) 
# 移除左框
>>> g.set_ylabels("Survived") 
# 设置Y轴的标签
>>> g.set_xticklabels(rotation=45) 
# 设置X轴刻度标签
>>> g.set_axis_labels("Survived", "Sex")
# 设置坐标轴标签
>>> h.set(xlim=(0,5),ylim=(0,5), xticks=[0,2.5,5], yticks=[0,2.5,5])
# 设置X与Y轴的限制和刻度

4.2 图形

>>> plt.title("A Title") 
# 添加图形标题
>>> plt.ylabel("Survived") 
# 调整y轴标签
>>> plt.xlabel("Sex") 
# 调整x轴标签
>>> plt.ylim(0,100)
# 调整y轴限制
>>> plt.xlim(0,10)
# 调整x轴限制
>>> plt.setp(ax,yticks=[0,5]) 
# 调整图形属性
>>> plt.tight_layout()
# 调整子图参数

五、显示或保存图形

  需要注意的是,savefig() 函数应该在 show() 函数之前调用,因为 show() 函数会清空当前的图形窗口
  在保存图像时,通过设置 transparent=True 参数可以使得背景透明化,即保存的图像中不含有白色背景

>>> plt.show() # 显示图形
>>> plt.savefig("foo.png") # 将画布保存为图形
>>> plt.savefig("foo.png", transparent=True) # 保存透明画布

5.1 关闭与清除

>>> plt.cla() # 清除坐标轴
>>> plt.clf() # 清除画布
>>> plt.close() # 关闭窗口

  需要注意的是,cla() 和 clf() 函数只清除当前的图形对象,而 close() 函数会关闭整个图形窗口文章来源地址https://www.toymoban.com/news/detail-704271.html

到了这里,关于【数据分析入门】Seaborn[散点图、条形图、计数图、热力图、箱型图、小提琴图]的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python百日进阶-数据分析】Day325 - plotly.express.scatter_3d():3D散点图

    data_frame ( DataFrame or array-like or dict ) – 这个参数需要传递给要使用的列名(而不是名)。Array-like 和 dict 在内部转换为 Pandas DataFrame。可选:如果丢失,则使用其他参数在幕后构造一个 DataFrame。 x ( str or int or Series or array-like ) – 中列的名称data_frame,或pandas Series或arra

    2024年02月04日
    浏览(51)
  • Matplotlib可视化数据分析图表下(常用图表的绘制、折线图、柱形图、直方图、饼形图、散点图、面积图、热力图、箱形图、3D图表、绘制多个图表、双y轴可视化图表、颜色渐变图)

    本文来自《Python数据分析从入门到精通》_明日科技编著 本节介绍常用图表的绘制,主要包括绘制折线图、绘制柱形图、绘制直方图、绘制饼形图、绘制散点图、绘制面积图、绘制热力图、绘制箱型图、绘制3D图表、绘制多个子图表以及图表的保存。对于常用的图表类型以绘制

    2023年04月23日
    浏览(56)
  • 522个matplotlib绘图案例,包含:折线图、散点图、条形图、饼图、直方图、3D图等,源码可直接运行!

    Matplotlib 是一个广泛使用的 Python 绘图库,可以用于生成各种类型的图表和可视化。它提供了丰富的功能和灵活的接口,使用户可以轻松地创建精美的图表。下面将介绍一些常见的Matplotlib图表类型。 折线图(Line Plot) 折线图是 Matplotlib 中最常见的图表类型之一。它用于显示数

    2024年02月15日
    浏览(40)
  • 数据分析 — Matplotlib 、Pandas、Seaborn 绘图

    Matplotlib 是一个用于 绘制数据可视化图形的 Python 库 。它提供了丰富的绘图工具,可以用于创建各种类型的图表。 安装和导入: pip install matplotlib import matplotlib.pyplot as plt # 导入 Matplotlib 库 图表适用场景总结: 1、折线图:表示数据的趋势情况,如几年每个月份的销量走势、

    2024年02月19日
    浏览(43)
  • 数据分析——seaborn可视化(笔记自用)

     参考内容  【Python】一小时带你掌握seaborn可视化_哔哩哔哩_bilibili 目录 一、变量分布  1、查看异常值  2、观察变量分布  3、figure-level functions具有FacetGrid特性  二、数值变量的关系分析  1、sns.relplot(): 2、sns.lmplot():分析两个变量的线性关系 3、sns.displot():绘制两个变量的联

    2023年04月08日
    浏览(38)
  • 【100天精通Python】Day65:Python可视化_Matplotlib3D绘图mplot3d,绘制3D散点图、3D线图和3D条形图,示例+代码

      mpl_toolkits.mplot3d 是 Matplotlib 库中的一个子模块,用于绘制和可视化三维图形,包括三维散点图、曲面图、线图等。它提供了丰富的功能来创建和定制三维图形。以下是 mpl_toolkits.mplot3d 的主要功能和功能简介: 3D 散点图 :通过 scatter 函数,你可以绘制三维散点图,用于显示

    2024年02月07日
    浏览(57)
  • 《PySpark大数据分析实战》-26.数据可视化图表Seaborn介绍

    📋 博主简介 💖 作者简介:大家好,我是wux_labs。😜 热衷于各种主流技术,热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员(PCTA)、TiDB数据库专家(PCTP)、TiDB数据库认证SQL开发专家(PCSD)认证。 通过了微软Azure开发人员、Azure数据工程师、Azure解决

    2024年01月21日
    浏览(44)
  • stata基础--回归,画散点图,异质性分析

    代码: sysuse auto sysuse dir       /*可以看到所有的数据*/ su price mpg foreign reg price mpg predict u,residual       /* 新变量u=每一个观测的残差*/                                    /*生成残差u需要紧接着回归*/ mpg和price在0.01显著性水平上负相关。 经验回归方程:

    2024年02月01日
    浏览(33)
  • 使用R语言绘制富集条形图,轻松分析基因表达数据

    富集分析(enrichment analysis)是一种生物信息学方法,它可以帮助我们识别基因或其他的生物实体在某个特定的类别中过度表示的趋势。通俗来说,富集分析通过将基因分类到特定的集合中,然后根据基因在集合中的分布和总体分布的比较,来寻找哪些集合与特定的生物过程、

    2024年02月11日
    浏览(49)
  • 添加数据维度并使用Python绘制5D散点图

    大家好,散点图通常用于比较2个不同特征以确定它们之间的关系,散点图也可以添加更多的维度来反映数据,例如使用颜色、气泡大小等。在本文中,将介绍如何绘制一个五维的散点图。 数据集:  让我们从二维开始,简单地看一下 Healthy_life_expectancy_at_birth 和 Log_GDP_per_ca

    2024年02月12日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包