成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

4種更快更簡單實現Python數據可視化的方法

開發 后端
在本文中,我們將看到另外 4 個數據可視化方法!本文對這些方法的介紹會更詳細一些。

數據可視化是數據科學或機器學習項目中十分重要的一環。通常,你需要在項目初期進行探索性的數據分析(EDA),從而對數據有一定的了解,而且創建可視化確實可以使分析的任務更清晰、更容易理解,特別是對于大規模的高維數據集。在項目接近尾聲時,以一種清晰、簡潔而引人注目的方式展示最終結果也是非常重要的,讓你的受眾(通常是非技術人員的客戶)能夠理解。

讀者可能閱讀過我之前的文章「5 Quick and Easy Data Visualizations in Python with Code」,我通過那篇文章向大家介紹了 5 種基礎的數據可視化方法:散點圖、線圖、直方圖、條形圖和箱形圖。這些都是簡單而強大的可視化方法,通過它們你可以對數據集有深刻的認識。在本文中,我們將看到另外 4 個數據可視化方法!本文對這些方法的介紹會更詳細一些,可以在您閱讀了上一篇文章中的基本方法之后接著使用,從而從數據中提取出更深入的信息。

熱力圖

熱力圖(Heat Map)是數據的一種矩陣表示方法,其中每個矩陣元素的值通過一種顏色表示。不同的顏色代表不同的值,通過矩陣的索引將需要被對比的兩項或兩個特征關聯在一起。熱力圖非常適合于展示多個特征變量之間的關系,因為你可以直接通過顏色知道該位置上的矩陣元素的大小。通過查看熱力圖中的其他點,你還可以看到每種關系與數據集中的其它關系之間的比較。顏色是如此直觀,因此它為我們提供了一種非常簡單的數據解釋方式。

現在讓我們來看看實現代碼。與「matplotlib」相比,「seaborn」可以被用于繪制更加高級的圖形,它通常需要更多的組件,例如多種顏色、圖形或變量。「matplotlib」可以被用于顯示圖形,「NumPy」可被用于生成數據,「pandas」可以被用于處理數據!繪圖只是「seaborn」的一個簡單的功能。 

  1. # Importing libs  
  2. import seaborn as sns  
  3. import pandas as pd  
  4. import numpy as np  
  5. import matplotlib.pyplot as plt  
  6. # Create a random dataset  
  7. data = pd.DataFrame(np.random.random((10,6)), columns=["Iron Man","Captain America","Black Widow","Thor","Hulk", "Hawkeye"])  
  8. print(data)  
  9. # Plot the heatmap  
  10. heatmap_plot = sns.heatmap(data, center=0cmap='gist_ncar' 
  11. plt.show() 

二維密度圖

二維密度圖(2D Density Plot)是一維版本密度圖的直觀擴展,相對于一維版本,其優點是能夠看到關于兩個變量的概率分布。例如,在下面的二維密度圖中,右邊的刻度圖用顏色表示每個點的概率。我們的數據出現概率最大的地方(也就是數據點最集中的地方),似乎在 size=0.5,speed=1.4 左右。正如你現在所知道的,二維密度圖對于迅速找出我們的數據在兩個變量的情況下最集中的區域非常有用,而不是像一維密度圖那樣只有一個變量。當你有兩個對輸出非常重要的變量,并且希望了解它們如何共同作用于輸出的分布時,用二維密度圖觀察數據是十分有效的。

事實再次證明,使用「seaborn」編寫代碼是十分便捷的!這一次,我們將創建一個偏態分布,讓數據可視化結果更有趣。你可以對大多數可選參數進行調整,讓可視化看結果看起來更清楚。 

  1. # Importing libs  
  2. import seaborn as sns  
  3. import matplotlib.pyplot as plt  
  4. from scipy.stats import skewnorm  
  5. # Create the data  
  6. speed = skewnorm.rvs(4, size=50)   
  7. size = skewnorm.rvs(4, size=50 
  8. # Create and shor the 2D Density plot  
  9. ax = sns.kdeplot(speed, size, cmap="Reds"shade=Falsebw=.15, cbar=True 
  10. ax.set(xlabel='speed'ylabel='size' 
  11. plt.show() 

蜘蛛網圖

蜘蛛網圖(Spider Plot)是顯示一對多關系的最佳方法之一。換而言之,你可以繪制并查看多個與某個變量或類別相關的變量的值。在蜘蛛網圖中,一個變量相對于另一個變量的顯著性是清晰而明顯的,因為在特定的方向上,覆蓋的面積和距離中心的長度變得更大。如果你想看看利用這些變量描述的幾個不同類別的對象有何不同,可以將它們并排繪制。在下面的圖表中,我們很容易比較復仇者聯盟的不同屬性,并看到他們各自的優勢所在!(請注意,這些數據是隨機設置的,我對復仇者聯盟的成員們沒有偏見。)

在這里,我們可以直接使用「matplotlib」而非「seaborn」來創建可視化結果。我們需要讓每個屬性沿圓周等距分布。我們將在每個角上設置標簽,然后將值繪制為一個點,它到中心的距離取決于它的值/大小。最后,為了顯示更清晰,我們將使用半透明的顏色來填充將屬性點連接起來得到的線條所包圍的區域。 

  1. # Import libs  
  2. import pandas as pd  
  3. import seaborn as sns  
  4. import numpy as np  
  5. import matplotlib.pyplot as plt  
  6. # Get the data  
  7. df=pd.read_csv("avengers_data.csv")  
  8. print(df)  
  9. """  
  10.    #             Name  Attack  Defense  Speed  Range  Health  
  11. 0  1         Iron Man      83       80     75     70      70  
  12. 1  2  Captain America      60       62     63     80      80  
  13. 2  3             Thor      80       82     83    100     100  
  14. 3  3             Hulk      80      100     67     44      92  
  15. 4  4      Black Widow      52       43     60     50      65  
  16. 5  5          Hawkeye      58       64     58     80      65  
  17. """  
  18. # Get the data for Iron Man  
  19. labels=np.array(["Attack","Defense","Speed","Range","Health"])  
  20. stats=df.loc[0,labels].values  
  21. # Make some calculations for the plot  
  22. angles=np.linspace(0, 2*np.pi, len(labels), endpoint=False 
  23. stats=np.concatenate((stats,[stats[0]]))  
  24. angles=np.concatenate((angles,[angles[0]]))  
  25. # Plot stuff  
  26. fig = plt.figure()  
  27. ax = fig.add_subplot(111, polar=True 
  28. ax.plot(angles, stats, 'o-', linewidth=2 
  29. ax.fill(angles, stats, alpha=0.25)  
  30. ax.set_thetagrids(angles * 180/np.pi, labels)  
  31. ax.set_title([df.loc[0,"Name"]])  
  32. ax.grid(True)  
  33. plt.show() 

樹狀圖

我們從小學就開始使用樹狀圖(Tree Diagram)了!樹狀圖是自然而直觀的,這使它們容易被解釋。直接相連的節點關系密切,而具有多個連接的節點則不太相似。在下面的可視化結果中,我根據 Kaggle 的統計數據(生命值、攻擊力、防御力、特殊攻擊、特殊防御、速度)繪制了一小部分口袋妖怪游戲的數據集的樹狀圖。 

因此,統計意義上最匹配的口袋妖怪將被緊密地連接在一起。例如,在圖的頂部,阿柏怪 和尖嘴鳥是直接連接的,如果我們查看數據,阿柏怪的總分為 438,尖嘴鳥則為 442,二者非常接近!但是如果我們看看拉達,我們可以看到其總得分為 413,這和阿柏怪、尖嘴鳥就具有較大差別了,所以它們在樹狀圖中是被分開的!當我們沿著樹往上移動時,綠色組的口袋妖怪彼此之間比它們和紅色組中的任何口袋妖怪都更相似,即使這里并沒有直接的綠色的連接。

對于樹狀圖,我們實際上需要使用「Scipy」來繪制!讀取數據集中的數據之后,我們將刪除字符串列。這么做只是為了使可視化結果更加直觀、便于理解,但在實踐中,將這些字符串轉換為分類變量會得到更好的結果和對比效果。我們還設置了數據幀的索引,以便能夠恰當地將其用作引用每個節點的列。最后需要告訴大家的是,在「Scipy」中計算和繪制樹狀圖只需要一行簡單的代碼。 

  1. # Import libs  
  2. import pandas as pd  
  3. from matplotlib import pyplot as plt  
  4. from scipy.cluster import hierarchy  
  5. import numpy as np  
  6. # Read in the dataset  
  7. # Drop any fields that are strings  
  8. # Only get the first 40 because this dataset is big  
  9. df = pd.read_csv('Pokemon.csv')  
  10. dfdf = df.set_index('Name')  
  11. del df.index.name  
  12. dfdf = df.drop(["Type 1", "Type 2", "Legendary"], axis=1 
  13. dfdf = df.head(n=40 
  14. # Calculate the distance between each sample  
  15. Z = hierarchy.linkage(df, 'ward')  
  16. # Orientation our tree  
  17. hierarchy.dendrogram(Z, orientation="left"labels=df.index)  
  18. plt.show()  

 

責任編輯:龐桂玉 來源: Python編程
相關推薦

2018-03-24 21:38:54

Python數據庫數據可視化

2018-03-26 14:20:23

PythonMatplotlib數據可視化

2018-11-26 18:45:22

數據可視化繪圖可視化

2019-09-12 09:00:32

數據可視化熱圖數據集

2018-03-15 09:57:00

PythonMatplotlib數據可視化

2022-09-08 16:28:53

Python數據可視化機器學習

2017-10-14 13:54:26

數據可視化數據信息可視化

2020-03-11 14:39:26

數據可視化地圖可視化地理信息

2025-03-04 00:22:31

2019-07-26 09:19:32

數據可視化架構

2014-05-28 15:23:55

Rave

2022-09-29 11:16:21

Python數據可視化

2015-09-21 09:27:25

數據可視化錯誤

2018-07-11 12:30:51

編程語言Python數據可視化

2017-10-31 09:38:53

大數據數據可視化Python

2022-08-26 09:15:58

Python可視化plotly

2024-02-21 21:31:20

Python數據分析數據可視化

2019-08-06 10:35:25

Python時間序列可視化

2020-05-26 11:34:46

可視化WordCloud

2022-02-23 09:50:52

PythonEchartspyecharts
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美h | 国产91av视频在线观看 | 久久久久久国产精品免费免费男同 | 亚洲综合色视频在线观看 | 欧美在线 | 久久99精品视频 | 日本又色又爽又黄的大片 | 国产在线a| 亚洲一二三区精品 | 国产精品久久久久久久岛一牛影视 | 黄色网址免费在线观看 | 免费在线视频精品 | 国产精品久久久久久久一区二区 | 成年免费大片黄在线观看岛国 | 亚洲福利在线视频 | 久久亚洲91 | 婷婷综合五月天 | 欧美一区在线视频 | 一区亚洲 | 欧美性tv | 国产精品久久影院 | 欧美激情国产精品 | 国产欧美精品在线观看 | 国产乱码精品1区2区3区 | 一区二区在线免费观看 | 在线免费观看视频黄 | 久久久久国产精品午夜一区 | 日产久久| 久久国产一区二区三区 | 日韩欧美精品在线 | 亚洲天堂免费在线 | 国产电影一区 | 91精品国产综合久久久久 | 色99视频| 日韩一区二区久久 | 日韩免费网站 | 欧美日韩一卡二卡 | 久久曰视频 | 亚洲视频中文字幕 | 免费在线看黄 | 日本激情一区二区 |