import matplotlib.pyplot as plt
x = ['Eric','Jhon','bill','Daniel']
y = [10, 17, 12.5, 20]
plt.plot(x,y)
plt.show()
当我运行此代码时,我收到此错误
ValueError: could not convert string to float:
我希望列表x
中的所有名称都位于x轴,相应的年龄位于第二个列表y
中,这将在条形图中使用。
所以我还有一个问题 这是一个很好的方式在我的情况下(我的意思是,如果我们可以创建一个元组列表(名称,年龄)),这将很容易?或其他什么。
答案 0 :(得分:2)
发生错误是因为matplotlib期待数字数据但你提供字符串(名称)。
您可以做的是使用一些数字数据绘制数据,然后使用plt.xticks
替换x轴上的刻度,如下所示。
import matplotlib.pyplot as plt
names = ['Eric','John','Bill','Daniel']
x = range(len(names))
y = [10, 17, 12.5, 20]
plt.plot(x, y)
plt.xticks(x, names)
plt.show()