Matplotlib學習---用matplotlib畫熱圖(heatmap)

這裏利用Nathan Yau所著的《鮮活的數據:數據可視化指南》一書中的數據,學習畫圖。學習

 

數據地址:http://datasets.flowingdata.com/ppg2008.csv字體

 

首先查看一下數據文件的前5行:spa

           Name     G   MIN   PTS   FGM   FGA    FGP  FTM  FTA    FTP ...   \
0    Dwyane Wade   79  38.6  30.2  10.8  22.0  0.491  7.5  9.8  0.765 ...    
1   LeBron James   81  37.7  28.4   9.7  19.9  0.489  7.3  9.4  0.780 ...    
2    Kobe Bryant   82  36.2  26.8   9.8  20.9  0.467  5.9  6.9  0.856 ...    
3  Dirk Nowitzki   81  37.7  25.9   9.6  20.0  0.479  6.0  6.7  0.890 ...    
4  Danny Granger   67  36.2  25.8   8.5  19.1  0.447  6.0  6.9  0.878 ...    

   3PA    3PP  ORB  DRB  TRB  AST  STL  BLK   TO   PF  
0  3.5  0.317  1.1  3.9  5.0  7.5  2.2  1.3  3.4  2.3  
1  4.7  0.344  1.3  6.3  7.6  7.2  1.7  1.1  3.0  1.7  
2  4.1  0.351  1.1  4.1  5.2  4.9  1.5  0.5  2.6  2.3  
3  2.1  0.359  1.1  7.3  8.4  2.4  0.8  0.8  1.9  2.2  
4  6.7  0.404  0.7  4.4  5.1  2.7  1.0  1.4  2.5  3.1 

這是NBA球員的比賽統計數據,好比說AST:(assists) 助攻次數,STL:(steals ) 搶斷次數,等等。code

 

讓咱們用這些統計數據來畫一個熱圖,這樣就能夠大概知道哪一個球員哪方面的得分比較高。orm

 

熱圖:ax.imshow(x,cmap=...)blog

 

代碼以下:get

import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
NBA=pd.read_csv(r"http://datasets.flowingdata.com/ppg2008.csv")
fig,ax=plt.subplots(figsize=(10,20))

score=NBA.loc[:,"G":"PF"].values
name=NBA.iloc[:,0]
col=NBA.loc[:,"G":"PF"].columns

im=ax.imshow(score,cmap='plasma_r') #用cmap設置配色方案
ax.xaxis.set_ticks_position('top') #設置x軸刻度到上方
ax.set_xticks(np.arange(len(col))) #設置x軸刻度
ax.set_yticks(np.arange(len(name))) #設置y軸刻度
ax.set_xticklabels(col) #設置x軸刻度標籤
ax.set_yticklabels(name) #設置y軸刻度標籤
fig.colorbar(im,pad=0.03) #設置顏色條
ax.set_title("NBA Average Performance (Top 50 Players)",x=0.2,y=1.034,fontsize=16) #設置標題以及其位置和字體大小 

plt.show()

 

圖像以下:pandas

相關文章
相關標籤/搜索