1. 最近在测试一款设备,采集了一些设备后需要一帧一帧显示图像,经常使用Python,所以选用了Matplotlib进行图像操作

数据结构: timesatamp polar_distance horizontal_angle refelectivity_intensity,所有数据类型都是 float,储存在文件内并且以空格分隔

import math
import matplotlib.pyplot as plt #read data from file
def LoadData(filename):
inFile = open(filename, 'r') #declare two empty list,to save data
inten = []
polar_dist = []
hori_angle = [] for line in inFile:
splitline = line.split(" ")
polar_dist.append(splitline[1])
hori_angle.append(splitline[2])
inten.append(splitline[3])
inFile.close() #mapping to float
polar_dist = list(map(float,polar_dist))
hori_angle = list(map(float,hori_angle))
inten = list(map(float,inten)) return(polar_dist, hori_angle,inten)

2. 显示极坐标图像

def GenerateImageFromData(polar,angle,inten):
d2r = math.pi/180
for i in range(len(polar)):
angle[i] = d2r*(angle[i] +180)
plt.ion()
  #inreactive code
ax = plt.subplot(111, projection='polar')
for i in range(100):
c = ax.scatter(angle[i*167 :(i+1)*167], polar[i*167 :(i+1)*167], s = 10)
plt.show()
plt.pause(1)

3. 调用函数

if __name__=="__main__":
(polar,angle,inten) = LoadData("CloudData.txt")
GenerateImageFromData(polar,angle,inten)

当绘图语句中加入pl.ion()时,表示打开了交互模式。此时python解释器解释完所有命令后,给你出张图,但不会结束会话,而是等着你跟他交流交流。如果你继续往代码中加入语句,run之后,你会实时看到图形的改变。当绘图语句中加入pl.ioff()时或不添加pl.ion()时,表示打关了交互模式。

4. 另外一个example

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Nov 16 21:26:17 2017 @author: XX
""" import matplotlib.pylab as plt
import numpy as np
import math #clear images
plt.close() fig = plt.figure()
ax = fig.add_subplot(111) #ratio of x and y axis
ax.axis("equal") #enable grid of image
ax.grid(True) #activate inreactivate mode
plt.ion() init_x = 0.0
init_y = 3.5
init_angle = 45
init_wind_speed = 3 print("inreactive mode beginning")
try:
for t in range(50):
x = init_x + init_wind_speed*math.sin(math.pi/180*init_angle)*t
y = init_y + init_wind_speed*math.cos(init_angle*math.pi/180)*t
ax.scatter(x,y,c='r', s =5, marker ='^')
plt.pause(0.2)
except Exception as err:
print(err)

最新文章

  1. HTML5 input元素新的特性
  2. Django中 如何修改models字段的默认值
  3. [综] PCA降维
  4. JSBinding / About JSComponent and Serialization
  5. iOS开发——网络编程Swift篇&(六)异步Post方式
  6. CentOS 6.4 编译Open vSwitch2.0
  7. Mac OS X Yosemite安装Hadoop 2.6记录
  8. VS路宏 vc++于OutDir、ProjectDir、SolutionDir不同的路径
  9. 采用FirePHP调试PHP程序
  10. Spring整合Struts2,Hibernate的xml方式
  11. Python:解析PDF文本及表格——pdfminer、tabula、pdfplumber 的用法及对比
  12. .NET Core实战项目之CMS 第十章 设计篇-系统开发框架设计
  13. js中filter的用法
  14. 20175236 2018-2019-2 《Java程序设计》第六周学习总结
  15. HTTP协议2
  16. Luogu P4137 Rmq Problem / mex
  17. java基础-Idea开发工具介绍
  18. OO第四次课程总结分析
  19. 变量与算术表达式 - C程序设计语言
  20. Maven启用代理服务器访问

热门文章

  1. ionic3 教程(一)安装和配置
  2. SecureCrt 连接Redhat linux
  3. Linux centos 6.5 搭建 svn服务器
  4. 26 python 并发编程之多进程理论
  5. uva11134 - Fabled Rooks(问题分解,贪心法)
  6. Gym - 100502G Outing (强连通缩点+树形依赖背包)
  7. 如何开启MySQL远程访问权限 允许远程连接
  8. BZOJ4358:permu
  9. microsoft windows network 不允许一个用户使用一个以上用户名与服务器或共享资源的多重连接
  10. 关于64位操作系统使用C#访问注册表失败的问题