matplotlib畫圖問題:Y軸數據不按大小排列

這是一個遇到過幾次的問題,每次查完資料不做記錄,結果就是每次都要浪費時間再查一次。這次做好備好。

目標:讀一個文檔裏的數據,畫個圖
先上代碼:

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了
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章