zoukankan      html  css  js  c++  java
  • 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()

    图像如下:

  • 相关阅读:
    迭代器在LinkedList上的删除
    java多线程:CopyOnWriteArrayList
    vs中代码编译通过,但还是有红色波浪线
    vs中项目属性配置
    TortoiseGit安装与配置
    DC(device context)
    weak_ptr 使用
    C++ 中shared_ptr循环引用计数问题
    for_each与lambda表达式联合使用
    new 和 make_shared 在内存上的区别
  • 原文地址:https://www.cnblogs.com/HuZihu/p/9481068.html
Copyright © 2011-2022 走看看