您應該了解的頂級 Python 數據可視化庫

已發表: 2020-03-20

Python 可以用數據做很多事情。 它的眾多功能之一是可視化。 它有多個可用於此目的的庫。 在本文中,我們將看看它的一些著名庫以及您可以通過它們繪製的各種圖表。

目錄

Python 數據可視化

我們在本文中分享了多個示例,請務必使用數據集進行嘗試。 讓我們開始吧:

Python 數據可視化庫

Python 有許多庫可以創建漂亮的圖形。 它們都具有增強其性能和功能的各種功能。 它們適用於所有技能水平。 這意味著無論您是初學者還是高級程序員,您都可以在 Python 中執行數據可視化。 以下是一些著名的庫:

  • 海博恩
  • Matplotlib
  • 熊貓

還有許多其他用於數據科學的 Python 庫,但我們暫時專注於突出的庫。 我們現在將討論這些不同的庫,並了解如何使用它們和 Python 繪製圖形。 讓我們開始吧。

Matplotlib

最流行的用於繪製圖形的 Python 庫是 Matplotlib。 它不需要太多經驗,對於初學者來說,它是完美的。 你可以通過這個庫開始學習數據可視化,掌握各種圖表和可視化。 它給了你很大的自由,但你也必須編寫很多代碼。

人們使用 Matplotlib 進行簡單的可視化,例如條形圖和直方圖。

閱讀:Python 中的數據框

折線圖

要創建折線圖,您需要使用“繪圖”方法。 通過循環列,您可以在圖表中創建多個列。 為此目的使用以下代碼:

# 獲取要繪製的列

列 = iris.columns.drop(['class'])

# 創建 x 個數據

x_data = range(0, iris.shape[0])

# 創建圖形和軸

無花果,斧頭 = plt.subplots()

# 繪製每一列

對於列中的列:

ax.plot(x_data, iris[column], label=column)

# 設置標題和圖例

ax.set_title('虹膜數據集')

斧頭傳奇()

散點圖

您可以使用 'scatter' 方法創建散點圖。 您應該通過“plt.subplots”創建一個軸和一個圖形,以提供您的繪圖標籤和標題。

使用以下代碼:

# 創建圖形和軸

無花果,斧頭 = plt.subplots()

# 將 sepal_length 分散到 sepal_width

ax.scatter(iris['sepal_length'], iris['sepal_width'])

# 設置標題和標籤

ax.set_title('虹膜數據集')

ax.set_xlabel('sepal_length')

ax.set_ylabel('sepal_width')

您可以根據它們的類為數據點添加顏色。 為此,您需要製作一個從類映射到顏色的字典。 它也會通過使用 for 循環來分散每個點。

# 創建顏色字典

顏色 = {'Iris-setosa':'r', 'Iris-versicolor':'g', 'Iris-virginica':'b'}

# 創建圖形和軸

無花果,斧頭 = plt.subplots()

# 繪製每個數據點

對於我在範圍內(len(iris ['sepal_length'])):

ax.scatter(iris['sepal_length'][i], iris['sepal_width'][i],color=colors[iris['class'][i]])

# 設置標題和標籤

ax.set_title('虹膜數據集')

ax.set_xlabel('sepal_length')

ax.set_ylabel('sepal_width')

直方圖

您可以使用 'hist' 方法在 Matplotlib 中創建直方圖。 如果我們給它分類數據,它可以計算每個類出現的頻率。 這是在 Matplotlib 中繪製直方圖所需的代碼:

# 創建圖形和軸

無花果,斧頭 = plt.subplots()

# 繪製直方圖

ax.hist(wine_reviews['points'])

# 設置標題和標籤

ax.set_title('酒評分數')

ax.set_xlabel('點')

ax.set_ylabel('頻率')

條形圖

Matplotlib 具有繪製不同圖形的簡單方法。 例如,在這種情況下,要在 Matplotlib 中創建條形圖,您需要使用“bar”。 它不能自動計算類別的頻率,所以你需要使用'value_counts'函數來解決這個問題。 如果您的數據類型不多,那麼條形圖將非常適合其可視化。

# 創建圖形和軸

無花果,斧頭 = plt.subplots()

# 統計每個類的出現次數

數據 = wine_reviews['points'].value_counts()

# 獲取 x 和 y 數據

點 = data.index

頻率 = data.values

# 創建條形圖

ax.bar(點,頻率)

# 設置標題和標籤

ax.set_title('酒評分數')

ax.set_xlabel('點')

ax.set_ylabel('頻率')

熊貓

Pandas 是一個 Python 庫,在數據分析和操作方面很受歡迎。 它是一個開源庫,因此您可以免費使用它。 它於 2008 年進入市場,從那時起,它已成為最受歡迎的數據結構化庫之一。

通過使用 pandas 數據框,您可以輕鬆地為您的數據創建圖表。 它的 API 比 Matplotlib 更先進。 這意味著您可以在 Pandas 中使用比在 Matplotlib 中更少的代碼創建圖形。

條形圖

在 Pandas 中,您需要使用 'plot.bar()' 方法來繪製條形圖。 首先,您需要通過“value_count()”計算情節中的出現次數,然後使用“sort_index()”對它們進行排序。 這是創建條形圖的示例代碼:

random_reviews['points'].value_counts().sort_index().plot.bar()

您可以使用 'plot.barh()' 方法在 Pandas 中創建水平條形圖:

random_reviews['points'].value_counts().sort_index().plot.barh()

您也可以通過出現次數繪製數據:

random_reviews.groupby(“國家”).price.mean().sort_values(ascending=False)[:5].plot.bar()

折線圖

您需要使用 '<dataframe>.plot.line()' 在 Pandas 中創建折線圖,在 Pandas 中,您不需要遍歷需要繪製的每一列,因為它可以自動執行此操作。 此功能在 Matplotlib 中不可用。 這是代碼:

random.drop(['class'],axis=1).plot.line(title='隨機數據集')

散點圖

您可以使用“<dataset>.plot.scatter()”在 Pandas 中創建散點圖。 您需要向它傳遞兩個參數,即 x 列和 y 列的名稱。

這是它的例子:

random.plot.scatter(x='sepal_length', y='sepal_width', title=”隨機數據集')

直方圖

使用“plot.hist”在 Pandas 中創建直方圖。 除此之外,這種方法沒有太多內容。 您可以選擇創建單個直方圖或多個直方圖。

要創建一個直方圖,請使用以下代碼:

random_reviews['points'].plot.hist()

要創建多個直方圖,請使用:

random.plot.hist(subplots=True, layout=(2,2), figsize=(10, 10), bins=20)

海博恩

Seaborn 基於 Matplotlib,也是一個非常流行的用於數據可視化的 Python 庫。 它為您提供了高級界面來繪製數據。 它有很多特點。 它的高級功能使您可以使用比使用 Matplotlib 所需的更少的代碼行數創建出色的圖形。

直方圖

折線圖

您可以使用“sns.line plot”方法在 Seaborn 中創建折線圖。 您可以使用“sns.kdeplot”方法對線條的曲線邊緣進行圓化。 如果它有很多異常值,它會保持你的情節非常乾淨。

sns.lineplot(data=random.drop(['class'],axis=1))

散點圖

在 Seaborn 中,您可以通過 '.scatterplot' 方法創建散點圖。 在這種情況下,您需要添加 x 和 y 列的名稱,就像我們對 Pandas 所做的那樣。 但是有區別。 我們不能像在 Pandas 中那樣在數據上調用函數,因此我們需要將其作為附加參數傳遞。

sns.scatterplot(x='sepal_length', y='sepal_width', data=iris)

通過使用 'hue' 參數,您也可以突出顯示特定點。 這個功能在 Matplotlib 中並不容易。

sns.scatterplot(x='sepal_length',y='sepal_width',hue='class',data=iris)

條形圖

您可以使用 'sns.countplot' 方法在 Seaborn 中創建條形圖:

sns.countplot(random_reviews['points'])

現在我們已經討論了 Python 中數據可視化的關鍵庫,我們可以看看其他形式的圖表。 Python 及其庫使您能夠創建各種圖形來繪製數據。

Python 中的其他類型的數據可視化

餅形圖

餅圖在圓的不同部分顯示數據。 你一定在學校看過很多餅圖。 餅圖以百分比表示數據。 餅圖所有部分的總和應等於 100%。 這是示例代碼:

plt.pie(df['Age'], labels = {“A”, “B”, “C”,

“D”、“E”、“F”、

“G”、“H”、“I”、“J”}、

autopct ='% 1.1f %%', shadow = True)

plt.show()

plt.pie(df['收入'], labels = {“A”, “B”, “C”,

“D”、“E”、“F”、

“G”、“H”、“I”、“J”}、

autopct ='% 1.1f %%', shadow = True)

plt.show()

plt.pie(df['Sales'], labels = {“A”, “B”, “C”,

“D”、“E”、“F”、

“G”、“H”、“I”、“J”}、

autopct ='% 1.1f %%', shadow = True)

plt.show()

箱線圖

箱線圖基於統計數據的最小值、第一四分位數、中位數、第三四分位數和最大值。 該圖看起來像一個盒子(更具體地說,是一個矩形)。 這就是為什麼它有“箱線圖”這個名字。 下面是創建箱線圖的示例代碼:

# 對於數據框的每個數字屬性

df.plot.box()

# 單個屬性箱線圖

plt.boxplot(df['收入'])

plt.show()

另請閱讀:每個 Python 開發人員都應該知道的 10 大 Python 工具

結論

我們希望您發現這篇文章很有用。 您可以通過 Python 及其各種庫繪製多種圖形。 如果你之前沒有進行過 Python 數據可視化,你應該從 Matplotlib 開始。 掌握它之後,您可以轉向更複雜和更高級的數據可視化庫,例如 Pandas 和 Seaborn。

如果您想了解 Python、數據科學,請查看 IIIT-B 和 upGrad 的數據科學 PG 文憑,該文憑專為在職專業人士而設,提供 10 多個案例研究和項目、實用的實踐研討會、與行業專家的指導,與行業導師一對一,400 多個小時的學習和頂級公司的工作協助。

哪些是 Python 中最好的數據可視化庫?

數據可視化被認為是數據分析中極其重要的部分。 這是因為沒有比以可視化格式了解多個數據趨勢和信息更好的方法了。 如果您以書面形式展示公司的數據,人們可能會覺得它很無聊。 但是,如果您以視覺格式呈現相同的內容,人們肯定會更加關注它。

為了簡化數據可視化過程,Python 中有一些庫可以幫助您。 您不能說任何特定的都是最好的,因為這完全取決於要求。 Python 中一些最好的數據可視化庫是 matplotlib、plotly、seaborn、GGplot 和 altair。

哪個是 Python 中最好的繪圖庫之一?

在數據可視化和繪圖庫方面,有很多可以讓您的工作更輕鬆。 可以看出,在所有可用的庫中,Matplotlib 被用戶認為是更好的庫。

Matplotlib 佔用空間更小,運行時間也更長。 除此之外,它還提供了一個面向對象的 API,允許用戶在應用程序本身中繪製圖形。 Matplotlib 還支持大量的輸出類型,而且它是免費和開源的。

哪個是數據科學家的默認數據可視化庫?

如果您從事數據科學,那麼您很有可能已經使用過 Matplotlib 庫。 已經看到,初學者到經驗豐富的專業人士更喜歡使用這個庫來構建複雜的數據可視化。

其巨大考慮背後的主要原因是它作為 2D 繪圖庫為用戶提供的靈活性。 如果你有 MATLAB 背景,你會注意到 Matplotlib 的 Pyplot 接口對你來說非常熟悉。 因此,您不需要太多時間就可以開始您的第一個可視化。 用戶可以從最精細的級別控制 Matplotlib 中的整個可視化。