Seaborn的6個簡單技巧
作者|Zolzaya Luvsandorj
編譯|VK
來源|Towards Datas Science
在這篇文章中,我們將探討一些簡單的方法來定製你的圖表,使它們在美學上更好。我希望這些簡單的技巧能幫助你得到更好看的圖。
基線圖
本文中的指令碼在Jupyter筆記本中的python3.8.3中進行了測試。
讓我們使用Seaborn內建的penguins資料集作為樣本資料:
# 匯入包 import matplotlib.pyplot as plt import seaborn as sns # 匯入資料 df = sns.load_dataset('penguins').rename(columns={'sex': 'gender'}) df
我們將使用預設圖表設定構建標準散點圖,以將其用作基線:
# 圖
sns.scatterplot(data=df, x='body_mass_g', y='bill_length_mm',
alpha=0.7, hue='species', size='gender')
我們將看到這個圖如何隨著每一個技巧而改變。
技巧
你將看到,前兩個技巧用於單個繪圖,而其餘四個技巧用於更改所有圖表的預設設定。
技巧1:分號
你有沒有注意到在上一個圖中,文字輸出就在圖表的正上方?抑制此文字輸出的一個簡單方法是在繪圖末尾使用;
。
# 圖 sns.scatterplot(data=df, x='body_mass_g', y='bill_length_mm', alpha=0.7, hue='species', size='gender');
只需在程式碼末尾新增;就可以得到更清晰的輸出。
技巧2:plt.figure()
繪圖通常可以從調整大小中獲益。如果我們想調整大小,我們可以這樣做:
# 圖
plt.figure(figsize=(9, 5))
sns.scatterplot(data=df, x='body_mass_g', y='bill_length_mm',
alpha=0.7, hue='species', size='gender');
當我們調整大小時,圖例移到了左上角。讓我們將圖例移到圖表之外,這樣它就不會意外地覆蓋資料點:
# 圖 plt.figure(figsize=(9, 5)) sns.scatterplot(data=df, x='body_mass_g', y='bill_length_mm', alpha=0.7, hue='species', size='gender') plt.legend(loc='upper right', bbox_to_anchor=(1.2, 1));
如果你想知道如何知道figsize()
或bbox_to_anchor()
使用什麼數的字組合,則需要嘗試哪些數字最適合繪圖。
技巧3:sns.set_style()
如果不喜歡預設樣式,此函式有助於更改繪圖的整體樣式。這包括軸的顏色和背景。讓我們將樣式更改為whitegrid,並檢視列印外觀如何更改:
# 更改預設樣式
sns.set_style('whitegrid')
# 圖
plt.figure(figsize=(9, 5))
sns.scatterplot(data=df, x='body_mass_g', y='bill_length_mm',
alpha=0.7, hue='species', size='gender')
plt.legend(loc='upper right', bbox_to_anchor=(1.2, 1));
這裡還有一些其他的選擇可以嘗試:“darkgrid”、“dark”和“ticks”來找到你更喜歡的那個。
技巧4:sns.set_context()
在前面的圖中,標籤尺寸看起來很小。如果不喜歡預設設定,我們使用sns.set_context()可以更改上下文引數。
我使用這個函式主要是為了控制繪圖中標籤的預設字型大小。通過更改預設值,我們可以節省時間,而不必為單個繪圖的不同元素(例如軸標籤、標題、圖例)調整字型大小。讓我們把上下文改成“talk”,再看看圖:
# 預設上下文更改
sns.set_context('talk')
# 圖
plt.figure(figsize=(9, 5))
sns.scatterplot(data=df, x='body_mass_g', y='bill_length_mm',
alpha=0.7, hue='species', size='gender')
plt.legend(loc='upper right', bbox_to_anchor=(1.3, 1));
它更容易辨認,不是嗎?另一個可以嘗試的選項是:“poster”,這將增加預設大小甚至更多。
技巧5:sns.set_palette()
如果你想將預設調色盤自定義為你喜歡的顏色組合,此功能非常方便。我們可以使用Matplotlib中的彩色對映。這裡是從顏色庫中選擇的。讓我們將調色盤更改為“rainbow”並再次檢視該圖:
# 更改預設調色盤
sns.set_palette('rainbow')
# 圖
plt.figure(figsize=(9, 5))
sns.scatterplot(data=df, x='body_mass_g', y='bill_length_mm',
alpha=0.7, hue='species', size='gender')
plt.legend(loc='upper right', bbox_to_anchor=(1.3, 1));
如果找不到你喜歡的Matplotlib顏色對映,可以手動選擇顏色來建立自己獨特的調色盤。