您好,登錄后才能下訂單哦!
Python中怎么使用Seaborn繪制常用圖表,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
Seaborn是構建在matplotlib之上的數據可視化庫,與Python中的pandas數據結構緊密集成。可視化是Seaborn的核心部分,可以幫助探索和理解數據。
要了解Seaborn,就必須熟悉Numpy和Matplotlib以及pandas。
Seaborn提供以下功能:
面向數據集的API來確定變量之間的關系。
線性回歸曲線的自動計算和繪制。
它支持對多圖像的高級抽象繪制。
可視化單變量和雙變量分布。
這些只是Seaborn提供的功能的一部分,還有很多其他功能,我們可以在這里探索所有的功能。
要引入Seaborn庫,使用的命令是:
import seaborn as sns
使用Seaborn,我們可以繪制各種各樣的圖形,如:
分布曲線
餅圖和柱狀圖
散點圖
配對圖
熱力圖
在文章中,我們使用從Kaggle下載的谷歌Playstore數據集。
我們可以將Seaborn的分布圖與Matplotlib的直方圖進行比較。它們都提供非常相似的功能。這里我們畫的不是直方圖中的頻率圖,而是y軸上的近似概率密度。
我們將在代碼中使用sns.distplot()來繪制分布圖。
在進一步之前,首先,讓我們訪問我們的數據集,
import pandas as pd
import numpy as np
pstore = pd.read_csv("googleplaystore.csv")
pstore.head(10)
數據集是這樣的,
現在,讓我們看看如果我們繪制來自上述數據集的“Rating”列的分布圖是怎樣的,
#importing all the libraries
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
#Create a distribution plot for rating
sns.distplot(pstore.Rating)
plt.show()
Rating列的分布圖是這樣的,
在這里,曲線(KDE)顯示在分布圖上的是近似的概率密度曲線。
與matplotlib中的直方圖類似,在分布方面,我們也可以改變類別的數量,使圖更容易理解。
我們只需要在代碼中加上類別的數量,
#Change the number of bins
sns.distplot(inp1.Rating, bins=20, kde = False)
plt.show()
圖像是這樣的,
在上圖中,沒有概率密度曲線。要移除曲線,我們只需在代碼中寫入' kde = False '。
我們還可以向分布圖提供與matplotlib類似的容器的標題和顏色。讓我們看看它的代碼,
#importing all the libraries
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
#Create a distribution plot for rating
sns.distplot(pstore.Rating, bins=20, color="g")
plt.title("Distribution of app ratings", fontsize=20, color = 'red')
plt.show()
同一列Rating的分布圖是這樣的:
對Seaborn圖形進行樣式化
使用Seaborn的最大優勢之一是,它為圖形提供了廣泛的默認樣式選項。
這些是Seaborn提供的默認樣式。
'Solarize_Light2',
'_classic_test_patch',
'bmh',
'classic',
'dark_background',
'fast',
'fivethirtyeight',
'ggplot',
'grayscale',
'seaborn',
'seaborn-bright',
'seaborn-colorblind',
'seaborn-dark',
'seaborn-dark-palette',
'seaborn-darkgrid',
'seaborn-deep',
'seaborn-muted',
'seaborn-notebook',
'seaborn-paper',
'seaborn-pastel',
'seaborn-poster',
'seaborn-talk',
'seaborn-ticks',
'seaborn-white',
'seaborn-whitegrid',
'tableau-colorblind10'
我們只需要編寫一行代碼就可以將這些樣式合并到我們的圖中。
#importing all the libraries
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
#Adding dark background to the graph
plt.style.use("dark_background")
#Create a distribution plot for rating
sns.distplot(pstore.Rating, bins=20, color="g")
plt.title("Distribution of app ratings", fontsize=20, color = 'red')
plt.show()
在將深色背景應用到我們的圖表后,分布圖看起來是這樣的,
餅圖通常用于分析數字變量在不同類別之間如何變化。
在我們使用的數據集中,我們將分析內容Rating欄中的前4個類別的執行情況。
首先,我們將對內容Rating列進行一些數據清理/挖掘,并檢查其中的類別。
#importing all the libraries
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
#Analyzing the Content Rating column
pstore['Content Rating'].value_counts()
類別列表是,
根據上面的輸出,由于“只有18歲以上的成年人”和“未分級”的數量比其他的要少得多,我們將從內容分級中刪除這些類別并更新數據集。
#importing all the libraries
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
#Remove the rows with values which are less represented
pstore = pstore[~pstore['Content Rating'].isin(["Adults only 18+","Unrated"])]
#Resetting the index
pstore.reset_index(inplace=True, drop=True)
#Analyzing the Content Rating column again
pstore['Content Rating'].value_counts()
更新后在“Rating”欄中出現的類別是:
現在,讓我們為Rating列中出現的類別繪制餅圖。
#importing all the libraries
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
#Plotting a pie chart
plt.figure(figsize=[9,7])
pstore['Content Rating'].value_counts().plot.pie()
plt.show()
上面代碼的餅狀圖如下所示,
從上面的餅圖中,我們不能正確的推斷出“所有人10+”和“成熟17+”。當這兩類人的價值觀有點相似的時候,很難評估他們之間的差別。
我們可以通過將上述數據繪制成柱狀圖來克服這種情況。
#importing all the libraries
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
#Plotting a bar chart
plt.figure(figsize=[9,7])
pstore['Content Rating'].value_counts().plot.barh()
plt.show()
柱狀圖如下所示,
與餅圖類似,我們也可以定制柱狀圖,使用不同的柱狀圖顏色、圖表標題等。
到目前為止,我們只處理數據集中的一個數字列,比如評級、評論或大小等。但是,如果我們必須推斷兩個數字列之間的關系,比如“評級和大小”或“評級和評論”,會怎么樣呢?
當我們想要繪制數據集中任意兩個數值列之間的關系時,可以使用散點圖。此圖是機器學習領域的最強大的可視化工具。
讓我們看看數據集評級和大小中的兩個數字列的散點圖是什么樣子的。首先,我們將使用matplotlib繪制圖,然后我們將看到它在seaborn中的樣子。
使用matplotlib的散點圖
#import all the necessary libraries
#Plotting the scatter plot
plt.scatter(pstore.Size, pstore.Rating)
plt.show()
圖是這樣的
使用Seaborn的散點圖
在直方圖和散點圖的代碼中,我們將使用sn .joinplot()。
sns.scatterplot()散點圖的代碼。
#importing all the libraries
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# Plotting the same thing now using a jointplot
sns.jointplot(pstore.Size, pstore.Rating)
plt.show()
上面代碼的散點圖如下所示,
在seaborn中使用散點圖的主要優點是,我們將同時得到散點圖和直方圖。
如果我們想在代碼中只看到散點圖而不是組合圖,只需將其改為“scatterplot”
回歸曲線
回歸圖在聯合圖(散點圖)中建立了2個數值參數之間的回歸線,并有助于可視化它們的線性關系。
#importing all the libraries
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# Plotting the same thing now using a jointplot
sns.jointplot(pstore.Size, pstore.Rating, kind = "reg")
plt.show()
圖是這樣的,
從上圖中我們可以推斷出,當app的價格上升時,評級會穩步上升。
當我們想要查看超過3個不同數值變量之間的關系模式時,可以使用配對圖。例如,假設我們想要了解一個公司的銷售如何受到三個不同因素的影響,在這種情況下,配對圖將非常有用。
讓我們為數據集的評論、大小、價格和評級列創建一對圖。
我們將在代碼中使用sns.pairplot()一次繪制多個散點圖。
#importing all the libraries
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# Plotting the same thing now using a jointplot
sns.pairplot(pstore[['Reviews', 'Size', 'Price','Rating']])
plt.show()
上面圖形的輸出圖形是這樣的,
對于非對角視圖,圖像是兩個數值變量之間的散點圖
對于對角線視圖,它繪制一個柱狀圖,因為兩個軸(x,y)是相同的。
熱圖以二維形式表示數據。熱圖的最終目的是用彩色圖表顯示信息的概要。它利用了顏色強度的概念來可視化一系列的值。
我們在足球比賽中經常看到以下類型的圖形,
在Seaborn中創建這個類型的圖。
我們將使用sn .heatmap()繪制可視化圖。
當你有以下數據時,我們可以創建一個熱圖。
上面的表是使用來自Pandas的透視表創建的。
現在,讓我們看看如何為上表創建一個熱圖。
#importing all the libraries
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
##Plot a heat map
sns.heatmap(heat)
plt.show()
在上面的代碼中,我們已經將數據保存在新的變量“heat”中。
熱圖如下所示,
我們可以對上面的圖進行一些自定義,也可以改變顏色梯度,使最大值的顏色變深,最小值的顏色變淺。
更新后的代碼是這樣的,
#importing all the libraries
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
#Applying some customization to the heat map
sns.heatmap(heat, cmap = "Greens", annot=True)
plt.show()
上面代碼的熱圖是這樣的,
看完上述內容,你們掌握Python中怎么使用Seaborn繪制常用圖表的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。