Python 字典绘图 Matplotlib

7

我得到了一个字典

lr = {'0': 0.1354364, '1': 0.134567, '2': 0.100000} 

接下来继续进行。

我尝试使用key(0,1,2)作为x轴绘制一个简单的折线图,将值(0.1354364,0.134567,0.100000)作为y值。

plt.plot(lr.keys(),lr.values())
plt.title('ID model model accuracy')
plt.ylabel('accuracy')
plt.xlabel('epoch')
plt.legend(['train', 'test'], loc='upper left')
plt.savefig('ID modelo: model accuracy.png')
plt.clf()

我遇到了这个错误。

类型错误:float()参数必须是字符串或数字,而不是'dict_keys'

1个回答

9
这是因为dict对象的方法keys()返回一个dict_keys对象,该对象不受pyplot支持。
我会将dict_keys对象转换成list来解决这个问题:
plt.plot(list(lr.keys()),list(lr.values()))

正如@nikjohn所提到的:

需要指出的是,这仅适用于Python 3环境。 Python 2.7和最新的matplotlib版本与问题中发布的代码完全相容。


2
@LucG - 需要提到的是,这仅适用于Python 3环境。Python 2.7和最新的matplotlib版本,对于问题中发布的代码完全没有问题。 - gnikit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接