python绘制热力图

前言
  • 工作中,上司要求对于一些数据以热力图的形式进行显示出来,能够更加直观的对于不同的数据继续对比查看.
  • 查看网上各大博客, 关于python绘制热力图的博客文章有很多,但是发觉绝大多数都是直接在中国地图或者世界地图上甚至于是 某个城市的地图上进行绘制热力图,也就是说,热力图的底图是无法改变的,比较有印象的四种方法,如下:
    • 利用folium 来绘制https://blog.csdn.net/ouening/article/details/78882094
    • 利用百度提供的热力图api来绘制
      http://www.sohu.com/a/252907392_453160
    • 通过地图慧网站来绘制热力图
      https://jingyan.baidu.com/article/e4d08ffd7beec10fd2f60d38.html
    • 通过excel来绘制热力图
      https://www.jianshu.com/p/123cb5780694
  • 以上的方式绘制热力图很方便,并且能够完美的绘制热力图,但是可惜的是, 以上方式并没有解决我的困难,以上都是直接在网络地图上绘制热力图,而,我的难题为:
    • 在自己的地图上绘制热力图
  • 终究,功夫不负有心人,找到了几篇内容相差无几的博客,虽然不是特别的详细,但是我发觉里边共用的一个包,是可以解决我的问题的, 经过查看源代码,解读,最终绘制成功
  • 在这,总结一下此包的相关函数和参数,以备日后查看.
pyheatmouap
  • 这个库,貌似是由一个大佬将他的一个项目中的一些代码抽调出来封装而成,所以,想要找到特别详细的相关解释和注释很困难.在库的一些函数的注释中,也并没有像是大多数库一样,对于函数和相关参数有大量的解释,以下,我只会对于我用到的一些函数进行解释.
  • 首先,导入pyheatmouap库中关于热力图的类
    • from pyheatmap.heatmap import HeatMap
  • 实例化这个类,此类有四个初始化参数:
    • data
      • 以二维列表或者元组的形式,传入每个 热力点的横纵坐标以及热力值
      • 可以不传入热力值,默认为 1
      • 实例 [[x,y,n],[x,y,n]]
    • base=None 设置底图,= “路径”
    • width=0, 宽度
    • height=0 高度
  • heatmap函数,使用实例化出来的热力图对象进行绘制热力图,有四个参数:
    • save_as=None, 设备图像保存的路径
    • base=None, 设置背景
    • data=None, 不传即可,后台代码实现,为空,则使用实例化之时的data
    • r=10, 设置热力的范围半径
  • 代码实例
from pyheatmap.heatmap import HeatMap

def main():
    data = [] 
    
    # 定义坐标和热力值,十个热力点
    sdata = ['381,56,23',  '409,56,22',  '410,141,21',
             '200,252,20', '300,56,19', '50,56,18',
             '410,141,17','325,252,16', '381,56,15',
             '409,455,14', ]
    # 这段实际上是 将定义的坐标值转化为 函数接收的形式,[[x,y,n],[x,y,n]]
    for ln in sdata: 
        a = ln.split(",")
        if len(a) != 3:
            continue 
        a = [int(i)for i in a] 
        data.append(a)
    
    # 实例化热力图对象,传入坐标点 和背景图
    hm = HeatMap(data,base='bb.png') 
    # 绘制热力图,并且保存
    hm.heatmap(save_as="vv.png")

if __name__ == "__main__": 
    main()
  • 6
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值