【问题标题】:Create a Student-Age graph in Python-Matplotlib在 Python-Matplotlib 中创建学生年龄图
【发布时间】:2014-07-22 10:34:00
【问题描述】:
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 个问题 在我的情况下这是一个好方法吗(我的意思是如果我们可以创建一个元组列表(名称,年龄)),这很容易吗?或者别的什么。

【问题讨论】:

  • 我会在这里回答您的第二部分,以便您阅读后可以轻松删除它(因为它不是主要问题的一部分)。您可以构造两个数组或拥有一个元组列表,这取决于您将对数据执行的其他操作。请记住,当您想要进行绘图时,您必须将这些元组转换为两个列表(ynames)。 TL;DR - 无论哪种方式都可以。

标签: python python-2.7 matplotlib matplotlib-basemap


【解决方案1】:

发生错误是因为 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()

【讨论】:

    猜你喜欢
    • 2023-02-10
    • 1970-01-01
    • 2023-01-29
    • 1970-01-01
    • 2019-04-23
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 2017-08-08
    相关资源
    最近更新 更多