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

50種常用的matplotlib可視化,再也不用擔心模型背著我亂跑了

大數據 數據可視化
最近 Machine Learning Plus 的作者介紹了 50 種最常用的 matplotlib 可視化圖表,而本文簡要介紹了這篇文章,詳細的 50 種可視化需要查閱原文。

數據分析與機器學習中常需要大量的可視化,因此才能直觀了解模型背地里都干了些什么。而在可視化中,matplotlib 算得上是最常用的工具,不論是對數據有個預先的整體了解,還是可視化預測效果,matplotlib 都是不可缺失的模塊。最近 Machine Learning Plus 的作者介紹了 50 種最常用的 matplotlib 可視化圖表,而本文簡要介紹了這篇文章,詳細的 50 種可視化需要查閱原文。

[[255418]]

50 種可視化圖原地址:https://www.machinelearningplus.com/plots/top-50-matplotlib-visualizations-the-master-plots-python

介紹

該表格主要介紹了 7 種不同的 matplotlib 可視化類別,讀者可根據目的選擇不同的圖。例如,如果你想要繪制兩個變量之間的關系,查看下面 Correlation 部分;或者如果你想展示某個變量的動態變化,查看下面的 Change 部分。

  • 一個美麗的圖表應該:
  • 提供準確、有需求的信息,不歪曲事實;
  • 設計簡單,獲取時不會太費力;
  • 美感是為了支持這些信息,而不是為了掩蓋這些信息;
  • 不要提供太過豐富的信息與太過復雜的結構。

如下所示為 7 種不同類型的可視化圖表:協相關性主要描述的是不同變量之間的相互關系;偏差主要展現出不同變量之間的差別;排序主要是一些有序的條形圖、散點圖或斜線圖等;分布就是繪制概率與統計中的分布圖,包括離散型的直方圖和連續型的概率密度分布圖等。后面還有變量的時序變化圖和類別圖等常見的可視化制圖類別。

可視化

可視化

配置

在繪制這 50 種可視化圖之前,我們需要配置一下依賴項以及通用設定,當然后面有一些獨立的美圖會修改通用設定。如果讀者看中了某種可視化圖,那么用這些配置再加上對應的可視化代碼就能嵌入到我們自己的項目中。

如下所示 pandas 與 numpy 主要用于讀取和處理數據,matplotlib 與 seaborn 主要用于可視化數據。其中 seaborn 其實是 matplotlib 上的一個高級 API 封裝,在大多數情況下使用 seaborn 就能做出很有吸引力的圖,而使用 matplotlib 能制作更具特色的圖。

  1. # !pip install brewer2mpl 
  2. import numpy as np 
  3. import pandas as pd 
  4. import matplotlib as mpl 
  5. import matplotlib.pyplot as plt 
  6. import seaborn as sns 
  7. import warnings; warnings.filterwarnings(action='once'
  8.  
  9. large = 22med = 16small = 12 
  10. params = {'axes.titlesize': large, 
  11.           'legend.fontsize': med, 
  12.           'figure.figsize': (16, 10), 
  13.           'axes.labelsize': med, 
  14.           'axes.titlesize': med, 
  15.           'xtick.labelsize': med, 
  16.           'ytick.labelsize': med, 
  17.           'figure.titlesize': large} 
  18. plt.rcParams.update(params) 
  19. plt.style.use('seaborn-whitegrid') 
  20. sns.set_style("white") 
  21. %matplotlib inline 
  22.  
  23. # Version 
  24. print(mpl.__version__)  #> 3.0.0 
  25. print(sns.__version__)  #> 0.9.0 

制圖示意

前面列出了 7 大類共 50 種不同的可視化圖,但我們無法一一介紹,因此我們從協相關性、偏差、分布、時序變化和群組圖中各選擇了一個示例,它們能展示不同數據在不同情況下的可視化需求。

1. 相關圖(Correllogram)

若有兩種變量,且它們的值為離散的,那么二維相關圖可以表示兩個變量所有可能組合之間的相關性。當然如果是單變量,那么自身所有可能的組合也可以組成一個相關圖:

  1. # Import Dataset 
  2. df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mtcars.csv") 
  3.  
  4. # Plot 
  5. plt.figure(figsize=(12,10), dpi80
  6. sns.heatmap(df.corr(), xticklabels=df.corr().columns, yticklabels=df.corr().columns, cmap='RdYlGn'center=0annot=True
  7.  
  8. # Decorations 
  9. plt.title('Correlogram of mtcars', fontsize=22
  10. plt.xticks(fontsize=12
  11. plt.yticks(fontsize=12
  12. plt.show() 

2. 面積圖(Area Chart)

通過使用不同的顏色表示水平軸和線之間的區域,面積圖不僅強調峰值和低谷值,同時還強調它們持續的時間:即峰值持續時間越長,面積越大。

  1. import numpy as np 
  2. import pandas as pd 
  3.  
  4. # Prepare Data 
  5. df = pd.read_csv("https://github.com/selva86/datasets/raw/master/economics.csv", parse_dates=['date']).head(100) 
  6. x = np.arange(df.shape[0]) 
  7. y_returns = (df.psavert.diff().fillna(0)/df.psavert.shift(1)).fillna(0) * 100 
  8.  
  9. # Plot 
  10. plt.figure(figsize=(16,10), dpi80
  11. plt.fill_between(x[1:], y_returns[1:], 0, where=y_returns[1:] >= 0, facecolor='green'interpolate=Truealpha=0.7) 
  12. plt.fill_between(x[1:], y_returns[1:], 0, where=y_returns[1:] <= 0, facecolor='red'interpolate=Truealpha=0.7) 
  13.  
  14. # Annotate 
  15. plt.annotate('Peak \n1975', xy=(94.0, 21.0), xytext=(88.0, 28), 
  16.              bbox=dict(boxstyle='square'fc='firebrick'), 
  17.              arrowprops=dict(facecolor='steelblue'shrink=0.05), fontsize=15color='white'
  18.  
  19.  
  20. # Decorations 
  21. xtickvals = [str(m)[:3].upper()+"-"+str(y) for y,m in zip(df.date.dt.year, df.date.dt.month_name())] 
  22. plt.gca().set_xticks(x[::6]) 
  23. plt.gca().set_xticklabels(xtickvals[::6], rotation=90fontdict={'horizontalalignment': 'center', 'verticalalignment': 'center_baseline'}) 
  24. plt.ylim(-35,35) 
  25. plt.xlim(1,100) 
  26. plt.title("Month Economics Return %", fontsize=22
  27. plt.ylabel('Monthly returns %') 
  28. plt.grid(alpha=0.5) 
  29. plt.show() 

 

3. 密度圖(Density Plot)

在概率論與統計學習方法中,可視化概率密度就變得非常重要了。這種密度圖正是可視化連續型隨機變量分布的利器,分布曲線上的每一個點都是概率密度,分布曲線下的每一段面積都是特定情況的概率。如下所示,通過將它們按「response」變量分組,我們可以了解 X 軸和 Y 軸之間的關系。

  1. # Import Data 
  2. df = pd.read_csv("https://github.com/selva86/datasets/raw/master/mpg_ggplot2.csv") 
  3.  
  4. # Draw Plot 
  5. plt.figure(figsize=(16,10), dpi80
  6. sns.kdeplot(df.loc[df['cyl'] == 4, "cty"], shade=Truecolor="g"label="Cyl=4"alpha=.7) 
  7. sns.kdeplot(df.loc[df['cyl'] == 5, "cty"], shade=Truecolor="deeppink"label="Cyl=5"alpha=.7) 
  8. sns.kdeplot(df.loc[df['cyl'] == 6, "cty"], shade=Truecolor="dodgerblue"label="Cyl=6"alpha=.7) 
  9. sns.kdeplot(df.loc[df['cyl'] == 8, "cty"], shade=Truecolor="orange"label="Cyl=8"alpha=.7) 
  10.  
  11. # Decoration 
  12. plt.title('Density Plot of City Mileage by n_Cylinders', fontsize=22
  13. plt.legend() 
  14. plt.show() 

此外值得注意的是,深度學習,尤其是深度生成模型中的分布極其復雜,它們是不能直接可視化的,我們一般會通過 T-SNE 等降維方法可視化。

4. 時序變化圖(Time Series Plot)

時序變化圖也是機器學習中最常見的一種可視化圖表,不論是可視化損失函數還是準確率,都需要這種時序變化圖的幫助。這種圖主要關注某個變量怎樣隨時間變化而變化,以下展示了從 1949 到 1969 航空客運量的變化:

  1. # Import Data 
  2. df = pd.read_csv('https://github.com/selva86/datasets/raw/master/AirPassengers.csv') 
  3.  
  4. # Draw Plot 
  5. plt.figure(figsize=(16,10), dpi80
  6. plt.plot('date', 'traffic', data=dfcolor='tab:red'
  7.  
  8. # Decoration 
  9. plt.ylim(50, 750) 
  10. xtick_location = df.index.tolist()[::12] 
  11. xtick_labels = [x[-4:] for x in df.date.tolist()[::12]] 
  12. plt.xticks(ticks=xtick_locationlabels=xtick_labelsrotation=0fontsize=12horizontalalignment='center'alpha=.7) 
  13. plt.yticks(fontsize=12alpha=.7) 
  14. plt.title("Air Passengers Traffic (1949 - 1969)", fontsize=22
  15. plt.grid(axis='both'alpha=.3) 
  16.  
  17. # Remove borders 
  18. plt.gca().spines["top"].set_alpha(0.0)     
  19. plt.gca().spines["bottom"].set_alpha(0.3) 
  20. plt.gca().spines["right"].set_alpha(0.0)     
  21. plt.gca().spines["left"].set_alpha(0.3)    
  22. plt.show() 

5. 樹狀圖(Dendrogram)

樹狀圖是另一個比較有用的圖表,層次聚類或決策樹等算法可以使用它完成優美的可視化。樹形圖是以樹的圖形表示數據或模型結構,以父層和子層的結構來組織對象,是枚舉法的一種表達方式。下圖展示了一種神似層次聚類算法的圖表:

  1. import scipy.cluster.hierarchy as shc 
  2.  
  3. # Import Data 
  4. df = pd.read_csv('https://raw.githubusercontent.com/selva86/datasets/master/USArrests.csv') 
  5.  
  6. # Plot 
  7. plt.figure(figsize=(16, 10), dpi80)   
  8. plt.title("USArrests Dendograms", fontsize=22)   
  9. dend = shc.dendrogram(shc.linkage(df[['Murder', 'Assault', 'UrbanPop', 'Rape']], method='ward'), labels=df.State.values, color_threshold=100)   
  10. plt.xticks(fontsize=12
  11. plt.show() 

【本文是51CTO專欄機構“機器之心”的原創文章,微信公眾號“機器之心( id: almosthuman2014)”】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2021-06-08 07:48:26

數據 Python開發

2021-12-21 09:05:46

命令Linux敲錯

2020-06-15 08:03:17

大文件OOM內存

2015-05-29 09:01:48

2019-09-04 10:00:07

手機人臉識別

2020-04-10 09:55:28

Git 工具黑魔法

2021-08-13 22:38:36

大數據互聯網技術

2022-09-14 08:02:25

加密算法Bcryp

2019-12-14 15:50:51

編程元知識代碼開發

2016-08-09 16:17:37

高德地圖TFBOYS大數據

2015-10-22 10:38:43

Wi-Fi燃氣報警器

2021-06-11 07:14:04

QQ音樂微信翻譯

2018-10-11 15:51:32

ChromeGoogle瀏覽器

2018-03-15 09:57:00

PythonMatplotlib數據可視化

2020-04-30 09:01:27

路由器安全網絡安全路由器

2023-09-12 13:39:08

2020-03-02 00:01:25

Linux字符目錄

2021-06-04 12:05:03

Redis Bitmap 數據庫

2019-12-27 14:26:33

Github開源搶票神器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久草.com| 一片毛片 | 97精品超碰一区二区三区 | 国产福利在线小视频 | 中文字幕日韩一区二区 | 亚洲精品一 | 99自拍视频| 黄色日批视频 | 国产一区 | 羞羞网站在线观看 | 欧美精品在线观看 | 国产精品精品视频一区二区三区 | 日韩精品视频在线观看一区二区三区 | 久久精品一区二区视频 | 天天操夜夜操 | 欧美国产精品一区二区三区 | av手机在线播放 | 人人操日日干 | 中文字幕在线观看视频网站 | 九色网址| 国产福利在线看 | 精久久久 | 久色网| 欧美综合一区 | 精品国产一区二区国模嫣然 | 国产精品二区三区 | 国产精品亚洲片在线播放 | 亚洲视频国产视频 | 精品成人av | av一级在线观看 | 91在线免费视频 | www国产成人 | 国产人久久人人人人爽 | 午夜视频在线 | 亚洲国产情侣 | 国产日韩一区二区 | 精品一二区 | 成人免费观看男女羞羞视频 | 午夜久久久久久久久久一区二区 | 免费一级做a爰片久久毛片潮喷 | 在线免费激情视频 |