如何在Seaborn中创建面积图?


面积图就像魔术师的帽子一样,可以展现数据可视化——它可以随着时间的推移或任何其他有序维度提取关于不同变量累积量级的信息。您可以看到图表展开时发生的“魔法”,它以堆叠面积图的形式向您显示变量的总量级。每条线代表一个变量,它下面的面积代表它在每个时间点的量级。使用此图表,可以轻松比较每个变量在任何给定时间对总量级的相对贡献。

如果您想深入了解数据可视化的“魔法”,Seaborn 是完美的 Python 库。它提供了一个简单直观的界面,用于创建面积图和其他数据可视化。使用 Seaborn 的面积图,您可以自定义图表以适应您的需求,并可视化来自各个领域的各种数据。那么,为什么不使用面积图为您的数据添加一些“魔法”呢?

语法

用户可以按照以下语法使用 Seaborn 创建面积图。

sns.lineplot(x="year", y="passengers", data=flights_data, estimator="sum", ci=None, color="green", style="dotted")
plt.show()

在上述语法中,我们使用了 Seaborn 库的 lineplot() 方法来创建面积图。

用于面积图的自定义

一些最常用的自定义包括:

  • 更改线条颜色 − 您可以使用 `color` 参数指定图表中线条的颜色。例如,`color="green"` 将线条颜色设置为绿色。

  • 更改线条样式 − 您可以使用 `style` 参数指定图表中线条的样式。例如,`style="dotted"` 将线条样式设置为点线。

  • 添加图例 − 您可以使用 `legend` 参数向图表添加图例。例如,`legend="brief"` 将向图表添加简要图例。

  • 向轴添加标签 − 您可以使用 `xlabel` 和 `ylabel` 参数向图表的 x 轴和 y 轴添加标签。例如,`xlabel="Year"` 将向图表的 x 轴添加一个标签,显示“Year”。

示例 1

这是一个在 Seaborn 中创建基本面积图的示例:

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

#set seaborn style
sns.set_theme()
 
#define DataFrame
df = pd.DataFrame({'period': [1, 2, 3, 4, 5, 6, 7, 8],
                   'team_A': [20, 12, 15, 14, 19, 23, 25, 29],
                   'team_B': [5, 7, 7, 9, 12, 9, 9, 4],
                   'team_C': [11, 8, 10, 6, 6, 5, 9, 12]})

#create area chart
plt.stackplot(df.period, df.team_A, df.team_B, df.team_C)

这段 Python 代码使用 Pandas、Matplotlib 和 Seaborn 库来创建一个面积图,显示三个团队随时间的表现。使用所需数据定义 DataFrame,并使用 plt.stackplot() 函数创建图表。Seaborn 用于设置图表样式。

输出

示例 2

这是一个在 Seaborn 中创建自定义面积图以及具有特定标签的图例的示例:

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

#set seaborn style
sns.set_theme()
 
#define DataFrame
df = pd.DataFrame({'period': [1, 2, 3, 4, 5, 6, 7, 8],
                   'team_A': [20, 12, 15, 14, 19, 23, 25, 29],
                   'team_B': [5, 7, 7, 9, 12, 9, 9, 4],
                   'team_C': [11, 8, 10, 6, 6, 5, 9, 12]})

#define colors to use in chart
color_map = ['red', 'steelblue', 'pink']
    
#create area chart
plt.stackplot(df.period, df.team_A, df.team_B, df.team_C,
              labels=['Team A', 'Team B', 'Team C'],
              colors=color_map)

#add legend
plt.legend(loc='upper left')

#add axis labels
plt.xlabel('Period')
plt.ylabel('Points Scored')

#display area chart
plt.show()

此代码使用 Python 中的 Matplotlib 和 Seaborn 库创建面积图。定义一个包含三个团队在八个阶段得分的数据框,并设置 Seaborn 样式。stackplot 函数创建面积图,添加图例和轴标签,然后显示图表。

输出

结论

如果您想深入了解数据可视化的“魔法”,Seaborn 是完美的 Python 库。它提供了一个简单直观的界面,用于创建面积图和其他数据可视化。使用 Seaborn 的面积图,您可以自定义图表以适应您的需求,并可视化来自各个领域的各种数据。那么,为什么不使用面积图为您的数据添加一些“魔法”呢?

更新于:2023年5月11日

1K+ 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.