Matplotlib学习---用matplotlib画热图(heatmap)
Posted huzihu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matplotlib学习---用matplotlib画热图(heatmap)相关的知识,希望对你有一定的参考价值。
这里利用Nathan Yau所著的《鲜活的数据:数据可视化指南》一书中的数据,学习画图。
数据地址:http://datasets.flowingdata.com/ppg2008.csv
首先查看一下数据文件的前5行:
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 ) 抢断次数,等等。
让我们用这些统计数据来做一个热图。
热图:ax.imshow(x,cmap=...)
代码如下:
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()
图像如下:
以上是关于Matplotlib学习---用matplotlib画热图(heatmap)的主要内容,如果未能解决你的问题,请参考以下文章
matplot:在matplotlib中显示标签的问题[重复]
如何使用 matplotlib blitting 将 matplot.patches 添加到 wxPython 中的 matplotlib 图?