这是一个遇到过几次的问题,每次查完资料不做记录,结果就是每次都要浪费时间再查一次。这次做好备好。
目标:读一个文档里的数据,画个图
先上代码:
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import os
my_font = matplotlib.font_manager.FontProperties(fname = '/usr/share/fonts/opentype/noto/simsun.ttc')
model_path = '/home/will/test/score.txt'
data = []
for line in open(model_path,"r"):
det = '%.2f'%np.float(line[:-1].split(' ')[6])
data.append(det)
da = np.array(data)
x = np.arange(0, 50, 1)
plt.plot(x, da)
plt.ylabel('分数',fontproperties=my_font, fontsize = 10) # 横坐标轴的标题
plt.xlabel('帧数',fontproperties=my_font, fontsize = 18) # 纵坐标轴的标题
#plt.grid() # 显示网格
plt.show()
结果,Y轴的数据明显有问题,乱来,都不按大小排列了。
问题就出在,我从文档中读取了数据之后,保存的时候没把它保存在浮点数float
的形式,错误的保存成了字符串str
形式,这个问题老是不注意,以后要长记性,稍微改一下代码即可:
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import os
my_font = matplotlib.font_manager.FontProperties(fname = '/usr/share/fonts/opentype/noto/simsun.ttc')
model_path = '/home/will/test/score.txt'
data = []
for line in open(model_path,"r"):
det = '%.2f'%np.float(line[:-1].split(' ')[6])
det = float(det)
data.append(det)
da = np.array(data)
x = np.arange(0, 50, 1)
plt.plot(x, da)
plt.ylabel('分数',fontproperties=my_font, fontsize = 10) # 横坐标轴的标题
plt.xlabel('帧数',fontproperties=my_font, fontsize = 18) # 纵坐标轴的标题
#plt.grid() # 显示网格
plt.show()