HOWTO · Seaborn
設定 Seaborn 圖的背景顏色
本教程演示如何在 Python 中設定 Seaborn 圖的背景顏色。學習自訂圖表的多種方法,包括使用 set_style、set_palette 以及直接設定圖布背景。借助精美的背景提升資料視覺化效果,讓你的洞察脫穎而出。探索建立連貫且視覺上吸引人的圖形的技術,有效傳達你的資料故事。
本頁內容
若要為 Seaborn 圖表指定確切的背景色,請將 Matplotlib 的 axes.facecolor 與 figure.facecolor 設定傳入 seaborn.set()。前者會設定繪圖區域的顏色;後者會設定周圍圖布的顏色。若想快速套用協調一致的外觀,也可以改用 seaborn.set_style() 選擇預設樣式。需要特定顏色時,請使用指定色彩的方法;若預設樣式的背景、網格與刻度設定都符合圖表需求,則可選用該樣式。
使用 Seaborn 與 Matplotlib 設定確切的背景色
將包含所需 Matplotlib 設定的 rc 字典傳入 seaborn.set()。色彩名稱與十六進位字串都可以使用。以下是完整範例:它會將繪圖區域設為淡藍色、將圖布設為近白色,然後儲存圖表:
執行此範例:
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(rc={
"axes.facecolor": "#EAF2F8",
"figure.facecolor": "#F7F9FC",
})
fig, ax = plt.subplots()
sns.scatterplot(x=[1, 2, 3], y=[2, 4, 3], ax=ax)
fig.savefig("seaborn-background.png", dpi=150, bbox_inches="tight")
你可以將任一色彩值改成 lightblue 這類色彩名稱,或換成其他十六進位色碼。這些設定會套用至呼叫之後建立的圖表;若只想更改單一座標軸或圖布的背景色,請使用下方說明的直接設定方法。
使用 Seaborn 樣式選擇背景
seaborn.set_style() 會選擇一種預設樣式,並同時控制多項視覺屬性。可用的樣式有 darkgrid、whitegrid、dark、white 和 ticks。例如,sns.set_style("whitegrid") 會讓座標軸使用淺色背景並顯示網格線;sns.set_style("dark") 則會使用深色繪圖區域且不顯示網格。樣式會改變背景以外的外觀,因此也要確認網格與刻度適合你的資料。
調色盤會控制資料系列使用的顏色;繪圖情境則會調整標籤和線條等元素的縮放比例。sns.set_palette("deep") 和 sns.set_context("notebook") 可以讓圖表中的標記與文字和樣式相互協調,但兩者都不會設定背景色。若要一次設定一致的外觀,sns.set() 可以同時接受樣式、調色盤、繪圖情境與 rc 設定。
直接設定圖布與座標軸的背景
若只想更改單一圖布或繪圖區域的顏色,請直接使用 Matplotlib 物件。在呼叫 fig, ax = plt.subplots() 後,fig.patch.set_facecolor("#F7F9FC") 會更改整個圖布的背景,包括座標軸周圍的邊界;ax.set_facecolor("#EAF2F8") 則只會更改該座標軸的繪圖區域。若多圖表中的不同座標軸需要各自使用不同背景,這些方法就很實用;只要對需要個別顏色的座標軸呼叫 set_facecolor() 即可。
透過 Seaborn 傳入的 figure.facecolor 和 axes.facecolor 值,會成為之後建立的圖布與座標軸的預設值。直接設定則會作用於已建立的特定物件,讓套用範圍清楚明確,也不會影響後續建立的圖表。
協調圖表樣式、儲存圖表並檢查可讀性
上方範例將指定的背景色與 Seaborn 散佈圖結合,並透過 fig.savefig() 儲存圖表。建立圖表並設定顏色後,再呼叫圖布的儲存方法即可。若改用 plt.savefig(),請在目標圖表仍是目前作用中的圖表時呼叫。儲存前不必先顯示圖表。
背景、資料標記、標籤與網格線之間要保有足夠的對比。深色背景可搭配淺色標記;淺色背景通常適合搭配深色標記。請確認網格線清楚可見,但不會搶過資料的焦點。Seaborn 接受標準的 Matplotlib 色彩格式,包括色彩名稱與十六進位字串;選色時,請確認圖表儲存後與螢幕顯示時都清晰易讀。