海伯恩多地块网格

原文:https://www.geeksforgeeks.org/multi-plot-grid-in-seaborn/

前提条件:【matplot lib】出生

在本文中,我们将看到多维图数据,在数据集的不同子集上绘制同一图的多个实例是一种有用的方法。它允许查看者快速提取关于复杂数据集的大量信息。在 Seaborn 中,我们将以两种方式在单个窗口中绘制多个图表。首先借助 Facetgrid()函数和其他由 matplotlib 帮助的隐式。

FacetGrid: FacetGrid 是一种基于函数绘制网格的通用方式。它有助于可视化一个变量的分布以及多个变量之间的关系。它的对象使用数据框作为输入,并使用构成网格的列、行或颜色维度的变量名称,语法如下:

语法:海鸟。FacetGrid(数据,**kwargs)

  • 数据:整齐的数据框,其中每一列是一个变量,每一行是一个观察值。
  • **kwargs: 它使用许多参数作为输入,例如行、列、色调、调色板等。

以下是上述方法的实现:

导入所有需要的 Python 库

Python 3

import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

示例 1: 这里,我们像这样初始化网格,设置 matplotlib 图形和轴,但不在它们上面绘制任何东西,我们使用的是练习数据集,这是一个众所周知的数据集,可作为 seaborn 中的内置数据集。 该类的基本用法与 FacetGrid 非常相似。首先初始化网格,然后将绘图函数传递给 map 方法,它将在每个子图中被调用。

Python 3

# loading of a dataframe from seaborn
exercise = sns.load_dataset("exercise")

# Form a facetgrid using columns
sea = sns.FacetGrid(exercise, col = "time")

输出:

例 2: 此功能将绘制图形并标注轴。要绘制关系图,首先要初始化网格,然后将绘图函数传递给一个 map 方法,它将在每个子图上被调用。

Python 3

# Form a facetgrid using columns with a hue 
sea = sns.FacetGrid(exercise, col = "time", hue = "kind")

# map the above form facetgrid with some attributes   
sea.map(sns.scatterplot, "pulse", "time", alpha = .8)

# adding legend
sea.add_legend()

输出:

示例 3: 有几个控制网格外观的选项可以传递给类构造函数。

Python 3

sea = sns.FacetGrid(exercise, row = "diet",
                    col = "time", margin_titles = True)

sea.map(sns.regplot, "id", "pulse", color = ".3",
        fit_reg = False, x_jitter = .1)

输出:

示例 4: 通过提供每个刻面的高度以及纵横比来设置图形的大小:

Python 3

sea = sns.FacetGrid(exercise, col = "time",
                    height = 4, aspect  =.5)

sea.map(sns.barplot, "diet", "pulse",
        order = ["no fat", "low fat"])