Seaborn 圖的透明度

Manav Narula 2021年10月2日
Seaborn 圖的透明度

在本教程中,我們將討論如何在 Python 中控制 seaborn 圖的透明度。

為了控制繪圖的透明度,我們可以在繪圖函式中使用 alpha 引數。預設情況下,它的值為 1。該引數的取值範圍為 0 到 1,隨著該值達到 0,繪圖變得更加透明和不可見。它可以直接用於 seaborn 模組的大部分繪圖功能。

例如,

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

df = pd.DataFrame(
    {
        "Day 1": [7, 1, 5, 6, 3, 10, 5, 8],
        "Index": [1, 2, 3, 4, 5, 6, 7, 8],
    }
)

sns.lineplot(data=df, y="Day 1", x="Index", alpha=0.4)

seaborn 線圖中的 alpha 引數

請注意,alpha 引數的值可以大於 1。但是,它的值離整數越遠,繪圖就越透明。同樣,它越接近整數,圖就越亮。鑑於這可能有點難以理解,僅將引數保持在 0 和 1 之間。

在上面的例子中,我們使用 seaborn 模組建立了一個線圖,並通過將 alpha 引數設定為 0.4 使線圖更加透明。

在一張圖中,我們只能指定 alpha 引數一次。但是,透明度可以用作區分不同變數的一種方式。

例如,

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

df = pd.DataFrame(
    {
        "Day 1": [7, 1, 5, 6, 3, 10, 5, 8],
        "Day 2": [1, 2, 8, 4, 3, 9, 5, 2],
        "Index": [1, 2, 3, 4, 5, 6, 7, 8],
    }
)
sns.lineplot(data=df, x="Index", y="Day 2", alpha=1)
sns.lineplot(data=df, x="Index", y="Day 1", alpha=0.3)

seaborn 中兩個圖的 alpha

在上面的程式碼中,我們在同一張圖上繪製了兩個變數。基本上,一個圖繪製在另一個圖上,並且兩個圖都有不同的 alpha 值。我們可以根據透明度區分這兩個值,因為一個變數比另一個更透明。

alpha 引數也可用於不同的 FacetGrid、PairGrid 物件。對於此類物件,我們也可以使用 map() 函式中的引數。

請參考以下程式碼。

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

df = pd.DataFrame(
    {
        "Day 1": [7, 1, 5, 6, 3, 10, 5, 8],
        "Index": [1, 2, 3, 4, 5, 6, 7, 8],
    }
)
g = sns.FacetGrid(df)
g.map(sns.lineplot, "Index", "Day 1", alpha=0.4)

帶有 gmap 的 alpha 用於 seaborn 中的 facetgrid

作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn