多进程使用matplotlib.pyplot绘heatmap(多线程不可以)
数据格式如下:
8_15/l_eye/2732.png -20.5773 -5.17769 -3.34583 21.5859
9_13_1/l_eye/1211.png -10.1145 34.9928 -38.2122 -26.3371
8_20/l_eye/5966.png -44.0264 50.2898 63.5838 -49.1353
8_13/l_eye/8780.png -16.9358 50.4528 -44.2617 -57.1462
9_16_2/l_eye/5370.png -21.2264 17.0589 4.33619 -20.3562
9_15_1/l_eye/66.png 40.5758 -21.0923 12.0032 40.8452
8_13/l_eye/6664.png 51.0789 55.3987 -67.2433 -79.1243
9_15_2/l_eye/4429.png 16.958 30.0386 -24.5935 -26.4802
8_21/l_eye/2579.png -20.619 4.7845 21.9891 27.529
8_21/l_eye/8464.png -36.8559 54.4664 -32.1576 -67.6335
8_21/l_eye/359.png 20.9732 2.25414 -3.88966 41.175
9_16_2/l_eye/3065.png 7.16623 43.091 35.9651 -28.4994
9_14_2/l_eye/1961.png 33.3302 28.3553 22.7904 -28.5209
9_16_1/l_eye/2038.png 56.9721 24.6518 -23.5831 -39.2209
以2、3列为x、y绘制一个热力图
以4、5列为x、y绘制一个热力图
#!/usr/bin/python
# -*- encoding: utf-8 -*- import numpy as np
from matplotlib import pyplot as plt #import thread
#from threading import Thread
from multiprocessing import Process import pdb def generate_heat_array(is_test=0):
#pdb.set_trace()
if is_test==1:
# gussian distribution
mean = [0,0]
cov = [[0,1],[1,0]]
x, y = np.random.multivariate_normal(mean, cov, 10000).T
show_heat_map(x,y)
return x_head=[]
y_head=[]
x_gaze=[]
y_gaze=[]
for line in open('train.txt'):
split_data=line.split()
x_head.append(float(split_data[1]))
y_head.append(float(split_data[2]))
x_gaze.append(float(split_data[3]))
y_gaze.append(float(split_data[4])) #用thread库实现多线程
#由于主线程退出时,子线程自动中止,因此需要join;由于thread库未提供join方法,所以需要自己手动实现。
#thread.start_new_thread(show_heat_map,(x_head,y_head,1))
#thread.start_new_thread(show_heat_map,(x_gaze,y_gaze,2)) #用threading库实现多线程
#threading库提供了join方法。但是由于matplotlib.pyplot中的方法都是全局的,因此用多线程绘图会有错误:RuntimeError: main thread is not in main loop
#head_thread=Thread(target=show_heat_map, args=(x_head,y_head,1,))
#gaze_thread=Thread(target=show_heat_map,args=(x_gaze,y_gaze,2,))
#head_thread.start()
#gaze_thread.start()
#head_thread.join()
#gaze_thread.join() #用multiprocessing实现多进程
head_process=Process(target=show_heat_map,args=(x_head,y_head,1,))
gaze_process=Process(target=show_heat_map,args=(x_gaze,y_gaze,2,))
head_process.start()
gaze_process.start()
head_process.join()
gaze_process.join() def show_heat_map(x,y,n):
#pdb.set_trace()
fig=plt.figure(n)
plt.hist2d(x,y,bins=100)
plt.grid(True)
plt.colorbar()
#fig.savefig('%02i.png'%n)
plt.show() if __name__=='__main__':
generate_heat_array(0)
绘制热力图的方法:
plt.hist2d(x,y,bins=100)
x为横轴的值的list,y为纵轴值的list
修改bins可以控制区间大小
参考:http://blog.topspeedsnail.com/archives/707
使用meshgrid+imshow的话横纵坐标会有问题
多进程使用matplotlib.pyplot绘heatmap(多线程不可以)的更多相关文章
- Matplotlib.pyplot 常用方法
1.介绍 Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形.通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图 ...
- matplotlib.pyplot 导引
matplotlib.pyplot 是采用 python 语言和使用数值数学库 numpy 数组数据的绘图库.其主要目标是用于数据的可视化显示. 输出图形组成 matplotlib.pyplot 模块 ...
- matplotlib.pyplot 绘图详解 matplotlib 安装
apt-get install python-matplotlib 转载自: http://www.cnblogs.com/qianlifeng/archive/2012/02/13/2350086. ...
- matplotlib.pyplot.hist
**n, bins, patches = plt.hist(datasets, bins, normed=False, facecolor=None, alpha=None)** ## 函数说明 用于 ...
- 数据分析之matplotlib.pyplot模块
首先都得导模块. import numpy as np import pandas as pd import matplotlib.pyplot as plt from pandas import S ...
- Python Matplotlib.pyplot plt 中文显示
话不多说,上代码 # -*- coding: UTF-8 -*- import matplotlib.pyplot as plt from matplotlib.font_manager import ...
- 在绘图的时候import matplotlib.pyplot as plt报错:ImportError: No module named '_tkinter', please install the python-tk package
在绘图的时候import matplotlib.pyplot as plt报错:ImportError: No module named '_tkinter', please install the ...
- Matplotlib.pyplot 把画图保存为图片
在plt.show()之前执行plt.savefig()函数即可. 简单例子: import matplotlib.pyplot as plt x=[1,2,3,4,5] y=[10,5,15,10, ...
- 使用numpy与matplotlib.pyplot画图
使用numpy与matplotlib.pyplot画图 1. 折线图 1 # -*- enccoding:utf-8 -*- 2 import numpy as np 3 import matplot ...
随机推荐
- 自定义流水号的autocode
; } }; ); dac.executeUpdate(); , TimeUnit.); ); ); } ); }}
- c#省市联动(sqlHelper的应用)
sqlHelper: using System; using System.Collections.Generic; using System.Linq; using System.Text; usi ...
- Django 1 创建项目
shell中输入 django-admin.py startproject mysite. 然后进入mysite目录,输入python manage.py runserver 0.0.0.0:8000 ...
- php 模板框架之smarty 的下载和安装
Smarty 官网: http://www.smarty.net/ Smarty 下载: https://github.com/smarty-php/smarty/releases/tag/v3.1. ...
- MVC已经是现代Web开发中的一个很重要的部分,下面介绍一下Spring MVC的一些使用心得。
MVC已经是现代Web开发中的一个很重要的部分,下面介绍一下Spring MVC的一些使用心得. 之前的项目比较简单,多是用JSP .Servlet + JDBC 直接搞定,在项目中尝试用 Strut ...
- 一般来说,主方法main()结束的时候线程结束
suspend()是将一个运行时状态进入阻塞状态(注意不释放锁标记).恢复状态的时候用resume().Stop()指释放全部. 这几个方法上都有Deprecated标志,说明这个方法不推荐使用. 一 ...
- Struts2的拦截器是如何使用AOP工作的
拦截器(interceptor)是Struts2最强大的特性之一,也可以说是struts2的核心,拦截器可以让你在Action和result被执行之前或之后进行一些处理.同时,拦截器也可以让你将通用的 ...
- 【BZOJ】1022: [SHOI2008]小约翰的游戏John(博弈论)
http://www.lydsy.com/JudgeOnline/problem.php?id=1022 好神的博弈论. 题解见dzy的blog:http://dzy493941464.is-prog ...
- 【BZOJ】1644: [Usaco2007 Oct]Obstacle Course 障碍训练课(bfs)
http://www.lydsy.com/JudgeOnline/problem.php?id=1644 这和原来一题用dp来做的bfs很像啊orz.. 我们设f[i][j][k]代表i,j这个点之前 ...
- python入门(七):CGI编程
CGI CGI(Common Gateway Interface),通用网关接口,HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上. CGI在其中扮演的是在we ...