如何在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.