快速易用的Python資料視覺化方法有哪些
資料視覺化是資料科學或機器學習專案中十分重要的一環。通常,你需要在專案初期進行探索性的數據分析(EDA),從而對數據有一定的了解,而且創建可視化確實可以使分析的任務更清晰、更容易理解,特別是對於大規模的高維度數據集。在專案接近尾聲時,以一種清晰、簡潔而引人注目的方式展示最終結果也是非常重要的,讓你的受眾(通常是非技術人員的客戶)能夠理解。
熱力圖
一種以顏色表示資料矩陣中每個元素值的方法稱為熱力圖(Heat Map)。透過矩陣索引,將需要比較的兩個或特徵關聯起來,並用不同的顏色代表它們的不同值。熱力圖適用於多個特徵變數之間的關係展示,因為顏色可以直接反映矩陣元素在該位置的大小。你可以透過熱力圖中的其他點來比較每種關係和資料集中的其他關係。由於色彩的直觀性,它為我們提供了一種簡單易懂的數據解釋方式。
現在讓我們來看看實作程式碼。與「matplotlib」相比,「seaborn」可以用來繪製更進階的圖形,它通常需要更多的元件,例如多種顏色、圖形或變數。 「matplotlib」可以用來顯示圖形,「NumPy」可用來產生數據,「pandas」可以用來處理數據!繪圖只是“seaborn”的一個簡單的功能。
# Importing libs import seaborn as sns import pandas as pd import numpy as np import matplotlib.pyplot as plt # Create a random dataset data = pd.DataFrame(np.random.random((10,6)), columns=["Iron Man","Captain America","Black Widow","Thor","Hulk", "Hawkeye"]) print(data) # Plot the heatmap heatmap_plot = sns.heatmap(data, center=0, cmap='gist_ncar') plt.show()
二維密度圖
二維密度圖(2D Density Plot)是一維版本密度圖的直觀擴展,相對於一維版本,其優點是能夠看到關於兩個變數的機率分佈。右邊的刻度圖使用顏色來表示每個點的機率,在下面的二維密度圖中。我們的資料出現機率最大的地方(也就是資料點最集中的地方),似乎在 size=0.5,speed=1.4 左右。正如你現在所知道的,二維密度圖對於迅速找出我們的資料在兩個變數的情況下最集中的區域非常有用,而不是像一維密度圖那樣只有一個變數。當你有兩個對輸出非常重要的變量,並且希望了解它們如何共同作用於輸出的分佈時,用二維密度圖觀察數據是十分有效的。
事實再次證明,使用「seaborn」寫程式碼是十分便捷的!這次,我們將創建一個偏態分佈,讓資料視覺化結果更有趣。你可以對大多數可選參數進行調整,讓視覺化看結果看起來更清楚。
# Importing libs import seaborn as sns import matplotlib.pyplot as plt from scipy.stats import skewnorm # Create the data speed = skewnorm.rvs(4, size=50) size = skewnorm.rvs(4, size=50) # Create and shor the 2D Density plot ax = sns.kdeplot(speed, size, cmap="Reds", shade=False, bw=.15, cbar=True) ax.set(xlabel='speed', ylabel='size') plt.show()
蜘蛛網圖
Spider plots are one of the best ways to display one-to-many relationships.。換句話說,您可以繪製和查看與特定變數或類別相關的多個變數的值。在蜘蛛網圖中,一個變數相對於另一個變數的顯著性是清晰而明顯的,因為在特定的方向上,覆蓋的面積和距離中心的長度變得更大。你可以繪製這些變數所描述的不同類別的物件並排展示,以便觀察它們之間的差異。在下面的圖表中,我們很容易比較復仇者聯盟的不同屬性,並看到他們各自的優勢所在! (請注意,這些數據是隨機設定的,我對復仇者聯盟的成員們沒有偏見。)
#我們可以用「matplotlib」來產生視覺化結果,而不必使用“seaborn”。我們需要讓每個屬性沿著圓周等距分佈。每個角落都會有標籤,我們會將值以一個點的形式繪製,該點到中心的距離與其值/大小成比例。為了更明確地展示,我們將採用半透明顏色來填滿由連接屬性點的線條所形成的區域。
# Import libs import pandas as pd import seaborn as sns import numpy as np import matplotlib.pyplot as plt # Get the data df=pd.read_csv("avengers_data.csv") print(df) """ # Name Attack Defense Speed Range Health 0 1 Iron Man 83 80 75 70 70 1 2 Captain America 60 62 63 80 80 2 3 Thor 80 82 83 100 100 3 3 Hulk 80 100 67 44 92 4 4 Black Widow 52 43 60 50 65 5 5 Hawkeye 58 64 58 80 65 """ # Get the data for Iron Man labels=np.array(["Attack","Defense","Speed","Range","Health"]) stats=df.loc[0,labels].values # Make some calculations for the plot angles=np.linspace(0, 2*np.pi, len(labels), endpoint=False) stats=np.concatenate((stats,[stats[0]])) angles=np.concatenate((angles,[angles[0]])) # Plot stuff fig = plt.figure() ax = fig.add_subplot(111, polar=True) ax.plot(angles, stats, 'o-', linewidth=2) ax.fill(angles, stats, alpha=0.25) ax.set_thetagrids(angles * 180/np.pi, labels) ax.set_title([df.loc[0,"Name"]]) ax.grid(True) plt.show()
樹狀圖
我們從小學起就學會了使用樹狀圖。由於樹形圖自然直觀,因此易於理解。直接相連的節點關係密切,而具有多個連接的節點則不太相似。在下面的視覺化結果中,我根據 Kaggle 的統計數據(生命值、攻擊力、防禦力、特殊攻擊、特殊防禦、速度)繪製了一小部分寶可夢遊戲的資料集的樹狀圖。
因此,统计意义上最匹配的口袋妖怪将被紧密地连接在一起。例如,在图的顶部,阿柏怪 和尖嘴鸟是直接连接的,如果我们查看数据,阿柏怪的总分为 438,尖嘴鸟则为 442,二者非常接近!但是如果我们看看拉达,我们可以看到其总得分为 413,这和阿柏怪、尖嘴鸟就具有较大差别了,所以它们在树状图中是被分开的!当我们沿着树往上移动时,绿色组的口袋妖怪彼此之间比它们和红色组中的任何口袋妖怪都更相似,即使这里并没有直接的绿色的连接。
实际上,我们需要使用「Scipy」来绘制树状图。一旦读取了数据集中的数据,我们就会删除字符串列。这么做只是为了使可视化结果更加直观、便于理解,但在实践中,将这些字符串转换为分类变量会得到更好的结果和对比效果。我们还创建了数据帧的索引,以方便在每个节点上正确引用它的列。告诉大家的最后一件事是:在“Scipy”中,计算和绘制树状图只需一行简单代码。
# Import libs import pandas as pd from matplotlib import pyplot as plt from scipy.cluster import hierarchy import numpy as np # Read in the dataset # Drop any fields that are strings # Only get the first 40 because this dataset is big df = pd.read_csv('Pokemon.csv') df = df.set_index('Name') del df.index.name df = df.drop(["Type 1", "Type 2", "Legendary"], axis=1) df = df.head(n=40) # Calculate the distance between each sample Z = hierarchy.linkage(df, 'ward') # Orientation our tree hierarchy.dendrogram(Z, orientation="left", labels=df.index) plt.show()
以上是快速易用的Python資料視覺化方法有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。
