使用Python绘制点击图、热图

via: http://blog.csdn.net/wenyusuran/article

pyHeatMap是一个使用Python生成热图的库,基本代码是我一年多之前写的,最近把它从项目中抠出来做成一个独立的库并开源。(https://github.com/oldj/pyheatmap)

可以直接下载源码安装最新的版本,也可以通过pip或easy_install安装稳定的发布版:

12345

pip install pyheatmap # 或者 easy_install pyheatmap

pyHeatMap依赖于PIL库,使用之前需要先确保你的环境中已经安装了PIL。使用方法很简单,比如:

# -*-coding:utf-8-*-

import urllibfrom pyheatmap.heatmap 
import HeatMap
def main():    
data = []    # download test data    url="https://raw.github.com/oldj/pyheatmap/master/examples/test_data.txt"    sdata = urllib.urlopen(url).read().split("\n")
    data = []
    for ln in sdata:
        a = ln.split(",")
            if len(a) != 2:
                        continue        a = [int(i) 
                        for i in a]
        data.append(a)

    hm = HeatMap(data)
    hm.clickmap(save_as="d://python/hit.png")
    hm.heatmap(save_as="d://python/heat.png")
    if __name__ == "__main__":
    main()

输入的数据为形如 [[123, 234], [429, 82], [220, 535], …] 这样的列表或元组,可以把它理解为一组平面坐标。

目前这个库可以生成两种图片:点击图、热图。

点击图效果如下:

热图效果如下:

绘制图片时,还可以指定一个底图,这个底图可以是任意图像,也可以是另一个点击图。比如:

12345678910

defexample2(): data_1=loadDataFromFile("test_data.txt") data_2=loadDataFromFile("test_data2.txt") hm=HeatMap(data_1) hit_img=hm.clickmap() hm2=HeatMap(data_2) hit_img2=hm2.clickmap(base=hit_img,color=(0,0,255,255)) hit_img2.save("hit2.png")

生成的图片形如:

关于绘制热图中用到的方法,可以参考我以前的文章,比如

关于网页点击热区图、

http://oldj.net/article/page-heat-map/

关于热区图的色盘

http://oldj.net/article/heat-map-colors/

其中热图绘制中还用到了

Bresenham画圆算法

http://oldj.net/article/bresenham-algorithm/

原文发布于微信公众号 - 大数据挖掘DT数据分析(datadw)

原文发表时间:2016-11-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏网络

HTML 正文内容提取库 Boilerpipe

Boilerpipe 是一个能从 HTML 中剔除广告和其他附加信息,提取出目标信息(如正文内容、发布时间)的 Java 库。 授权协议:Apache 开发语言...

37360
来自专栏AI研习社

GitHub项目推荐 | 用于对机器学习模型进行对抗性攻击、防御和基准测试的Python库:CleverHans 3.0.0

项目地址:https://github.com/tensorflow/cleverhans

48660
来自专栏xingoo, 一个梦想做发明家的程序员

汇编语言 手记7

CPU要读取一个内存单元的时候,必须先给出这个内存单元的地址; 在8086PC中,内存地址由段地址和偏移地址组成。 8086CPU中有一个DS寄存器,通常用来存...

22190
来自专栏WOLFRAM

各位, 还记得昨天我们留下的问题吗? 想要求出某个区域上的最大值?

11130
来自专栏云霄雨霁

计算题总结

36900
来自专栏一枝花算不算浪漫

集群扩容的常规解决:一致性hash算法

19420
来自专栏Golang语言社区

【Go 语言社区】把Go程序变小的办法

把Go程序变小的办法是: go build -ldflags “-s -w” (go install类似) -s去掉符号表(然后panic时候的stack tr...

37160
来自专栏计算机视觉

为stackGan一个工程创建一个虚拟环境,python 2.7 tensorflow0.12-tensorflow 1.01

安装conda 下载地址:https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64...

362100
来自专栏九彩拼盘的叨叨叨

彭小六私密日更群日更活动目录生成代码

15940
来自专栏机器学习从入门到成神

2015百度校招笔试真题以及解析(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/articl...

20010

扫码关注云+社区

领取腾讯云代金券