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轴的数据明显有问题,乱来,都不按大小排列了。
matplotlib画图问题:Y轴数据不按大小排列_第1张图片问题就出在,我从文档中读取了数据之后,保存的时候没把它保存在浮点数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了
matplotlib画图问题:Y轴数据不按大小排列_第2张图片

你可能感兴趣的:(Python,matplotlib,python)