在Python-Matplotlib中创建学生年龄图

时间:2014-06-02 10:24:14

标签: python python-2.7 matplotlib matplotlib-basemap

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中,这将在条形图中使用。

所以我还有一个问题 这是一个很好的方式在我的情况下(我的意思是,如果我们可以创建一个元组列表(名称,年龄)),这将很容易?或其他什么。

1 个答案:

答案 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()

Plot example