输入数据格式data
0
180
360
540
716
896
938
960
986
1002
1004
1006
1008
1010
1012
# import necessary module
from ctypes import sizeof
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np
from pylab import *
import cmath
import math
filename ='./plat_frame_id.txt' # 给定文件路径
plat_frame_id_data = []
with open(filename, 'r') as file_to_read: # 打开文件,将其值赋予file_to_read
while True:
lines = file_to_read.readline() # 整行读取数据
if not lines: # 若该行为空
break
else:
this_lines=lines.split()
length_this_lines = len(this_lines)
num_this_line = []
for loop_this_line in range(length_this_lines):
num_this_line.append(int(this_lines[loop_this_line]))
# print(num_this_line)
# print(type(num_this_line))
plat_frame_id_data.append(num_this_line)
# for this_line in num_this_line: # 遍历数组并输出
# print(double(this_line)) # 直接在这里写处理代码就可以了,因为切割后的数组是按照顺序排列的,并且自动剔除了换行符
# 但仍需注意,调试后发现切割后进行遍历的this_line变量为str格式,可能需要强制类型转换才能作为数字进行计算,所以这段代码同样支持英语汉语的分割输出
# line_data = array(double(this_line))
print("----------------------------")
# print(plat_frame_id_data)
max_farme_id = max(plat_frame_id_data)
print(max_farme_id[0])
# print('plat_frame_id_data_len = ',len(plat_frame_id_data))
# print(type(plat_frame_id_data))
view_plat_index_pos = [list()] * max_farme_id[0]
view_plat_index_pos[0].append(0)
print(len(view_plat_index_pos))
expand_loop = len(plat_frame_id_data)
for i in range(expand_loop):
index = plat_frame_id_data[i]
if(index[0] < len(view_plat_index_pos)):
view_plat_index_pos[index[0]] = [1]
# print((view_plat_index_pos))
# print(len(view_plat_index_pos))
# ## *****************************************************************
fig = plt.figure(figsize=[6.4*5, 4.8*5], dpi=100)
rect1 = [0.03, 0.55, 0.95, 0.35]
ax1 = plt.axes(rect1)
# plt.imshow(view_plat_index_pos)
plt.xlim=[0,max_farme_id[0]]
plt.ylim=[0,1]
xpoints =list(range(1,max_farme_id[0]+1))
xpoints =np.array(xpoints)
view_success_index_pos_array = np.array(view_plat_index_pos)
plt.plot(xpoints,view_success_index_pos_array,linewidth = 0.3)
plt.ylabel("status of plat frame")
plt.xlabel("the pos of plat frame in plat")
plt.savefig('/home/sun/nolovr/svopro/doc/plat_frame_distribute_inPlat.png', bbox_inches='tight')
plt.show()
plt.close()