如何使用 Seaborn 在Python中制作 Ridgeline 图?
先决条件: Seaborn
脊线图是一组重叠的密度图,有助于比较数据集之间的多个分布。 Ridgeline 图看起来像山脉,它们对于可视化分布随时间或空间的变化非常有用。有时它也被称为“joyplot”,参考了 Joy Division 专辑 Unknown Pleasures 的标志性封面艺术。在本文中,我们将看到如何为数据集生成 Ridgeline 图。
安装
像任何其他Python库一样,seaborn 可以使用 pip 轻松安装:
pip install seaborn
该库是 Anaconda 发行版的一部分,如果您的 IDE 受 Anaconda 支持,通常只需通过导入即可工作,但也可以通过以下命令安装:
conda install seaborn
程序
- 加载使用Python生成 Ridgeline 图所需的包。
- 读取数据集。在本例中,我们使用read_csv()方法加载数据集。在给定的示例中,我们将仅使用head()方法显示前 5 个条目。
- 生成 RidgePlot。山脊线图使用分面意味着它会在单列中创建小的倍数。要生成 Ridgeline Plot Seaborn 使用FacetGrid()方法,并且所有需要的信息都应该传递给它
Syntax: seaborn.FacetGrid(data, row, col, hue, palette, aspect, height)
Parameters:
- data: Tidy (“long-form”) dataframe where each column is a variable and each row is an observation.
- row, col, hue: Variables that define subsets of the data, which will be drawn on separate facets in the grid.
- height: Height (in inches) of each facet.
- aspect: Aspect ratio of each facet, so that aspect * height gives the width of each facet in inches.
- palette: Colors to use for the different levels of the hue variable.
- 使用 map() 方法在网格的每个元素中创建密度图。在这个例子中,我们需要一个密度图,所以使用 Seaborn 中提供的 kdeplot() 方法。
示例数据库:以下示例中使用的数据集是从 kaggle.com 下载的。以下链接可用于相同的。
数据库:titanic_train.csv
例子:
Python3
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
from sklearn import preprocessing
df = pd.read_csv("titanic_train.csv")
df.dropna()
le = preprocessing.LabelEncoder()
df["Sex"] = le.fit_transform(df["Sex"])
rp = sns.FacetGrid(df, row="Sex", hue="Sex", aspect=5, height=1.25)
rp.map(sns.kdeplot, 'Survived', clip_on=False,
shade=True, alpha=0.7, lw=4, bw=.2)
rp.map(plt.axhline, y=0, lw=4, clip_on=False)
输出 :