這是一個遇到過幾次的問題,每次查完資料不做記錄,結果就是每次都要浪費時間再查一次。這次做好備好。
目標:讀一個文檔裏的數據,畫個圖
先上代碼:
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()
然後就OK了