作者|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=https://www.cnblogs.com/panchuangai/archive/2020/10/14/df, x='body_mass_g', y='bill_length_mm',
alpha=0.7, hue='species', size='gender')

我們將看到這個圖如何隨著每一個技巧而改變,
技巧
你將看到,前兩個技巧用于單個繪圖,而其余四個技巧用于更改所有圖表的默認設定,
技巧1:分號
你有沒有注意到在上一個圖中,文本輸出就在圖表的正上方?抑制此文本輸出的一個簡單方法是在繪圖末尾使用;,
# 圖
sns.scatterplot(data=https://www.cnblogs.com/panchuangai/archive/2020/10/14/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=https://www.cnblogs.com/panchuangai/archive/2020/10/14/df, x='body_mass_g', y='bill_length_mm',
alpha=0.7, hue='species', size='gender');

當我們調整大小時,圖例移到了左上角,讓我們將圖例移到圖表之外,這樣它就不會意外地覆寫資料點:
# 圖
plt.figure(figsize=(9, 5))
sns.scatterplot(data=https://www.cnblogs.com/panchuangai/archive/2020/10/14/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=https://www.cnblogs.com/panchuangai/archive/2020/10/14/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=https://www.cnblogs.com/panchuangai/archive/2020/10/14/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=https://www.cnblogs.com/panchuangai/archive/2020/10/14/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顏色映射,可以手動選擇顏色來創建自己獨特的調色板,?? 創建自己調色板的一種方法是將顏色名稱串列傳遞給函式,如下例所示,這個鏈接是顏色名稱串列:https://matplotlib.org/3.1.0/gallery/color/named_colors.html,
# 更改默認調色板
sns.set_palette(['green', 'purple', 'red'])
# 圖
plt.figure(figsize=(9, 5))
sns.scatterplot(data=https://www.cnblogs.com/panchuangai/archive/2020/10/14/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));

如果顏色名稱不能很好地捕捉到你所追求的,你可以使用十六進制顏色構建自己的調色板來訪問更廣泛的選項(超過1600萬種顏色!),這里是我最喜歡的資源,可以找到一個十六進制的自定義調色板,我們來看一個例子:
# 更改默認調色板
sns.set_palette(['#62C370', '#FFD166', '#EF476F'])
# 圖
plt.figure(figsize=(9, 5))
sns.scatterplot(data=https://www.cnblogs.com/panchuangai/archive/2020/10/14/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));

技巧6:sns.set()
從前面的三個技巧中,我希望你能找到你最喜歡的組合(在某些情況下,它可能會保留默認設定),如果我們要更新圖表的默認設定,最好是在匯入可視化軟體包之后再更新,這意味著我們在腳本的開頭會有這樣一個片段:
# 匯入包
import matplotlib.pyplot as plt
import seaborn as sns
# 更改默認值
sns.set_style('whitegrid')
sns.set_context('talk')
sns.set_palette('rainbow')
更新上面的多個默認值可以用sns.set(). 以下是同一代碼的簡潔版本:
# 匯入包
import matplotlib.pyplot as plt
import seaborn as sns
# 更改默認值
sns.set(style='whitegrid', context='talk', palette='rainbow')
這是六個技巧,以下是調整前后的圖對比:

我希望你學會了一些簡單的方法來調整你的圖表,這不用花太多時間,我希望這篇文章能給你一些初步的想法,讓你開始個性化你的圖表,并使它們更具視覺上的美,如果你感興趣,以下是我的一些帖子的鏈接:
-
https://towardsdatascience.com/exploratory-text-analysis-in-python-8cf42b758d9e
-
https://towardsdatascience.com/5-tips-for-pandas-users-e73681d16d17
-
https://towardsdatascience.com/writing-5-common-sql-queries-in-pandas-90b52f17ad76
-
https://towardsdatascience.com/writing-5-common-sql-queries-in-pandas-90b52f17ad76
-
https://towardsdatascience.com/writing-advanced-sql-queries-in-pandas-1dc494a17afe
原文鏈接:https://towardsdatascience.com/6-simple-tips-for-prettier-and-customised-plots-in-seaborn-python-22f02ecc2393
歡迎關注磐創AI博客站:
http://panchuang.net/
sklearn機器學習中文官方檔案:
http://sklearn123.com/
歡迎關注磐創博客資源匯總站:
http://docs.panchuang.net/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/172568.html
標籤:其他
