多进程使用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 ...
随机推荐
- 《高性能MySQL》读书笔记(1)
慢查询 当一个资源变得效率低下的时候,应该了解一下为什么会这样.有如下可能原因:1.资源被过度使用,余量已经不足以正常工作.2.资源没有被正确配置3.资源已经损坏或者失灵 因为慢查询,太多查询的实践过 ...
- C/C++基础问题归集
include " ":先从本地目录,后从系统路径include <>: 先从系统路径,后从本地目录 一般用哪个都没关系,只是速度有差别罢了
- 常用cmd
net use 查询相应的共享文件 control userpasswords2--修改计算机的网络凭证 删除计算机记录的网络共享凭证 重启网络
- php url配置项
- Python之打印变量
def myprint(v): print v print type(v) try: print v.shape except: try: print len(v) except: pass
- javascript -- 事件捕获,事件冒泡
使用js的时候,当给子元素和父元素定义了相同的事件,比如都定义了onclick事件,单击子元素时,父元素的onclick事件也会被触发.js里称这种事件连续发生的机制为事件冒泡或者事件捕获. 为什么会 ...
- Linux下Vi/Vim的使用方法
本文介绍了vi (vim)的基本使用方法,但对于普通用户来说基本上够了!i/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特 ...
- InstallSheild 获取系统环境变量,如Desktop路径等
使用FOLDER_DESKTOP变量获取的桌面路径可能为:C:\Users\Public\Desktop 而不是C:\Users\用户\Desktop Copy and paste the follo ...
- VC++:ActiveX Test Container
VC++6.0安装后包含了ActiveX Test Container工具,位置为: "C:\Program Files (x86)\Microsoft Visual Studio\Comm ...
- Socket长连接和短连接的区别
https://blog.csdn.net/jasonjwl/article/details/52085264 短连接 连接->传输数据->关闭连接 HTTP是无状态的,浏览器和服务器每进 ...