【问题标题】:Plot chart with CSV files containing labels使用包含标签的 CSV 文件绘制图表
【发布时间】:2021-10-08 13:55:34
【问题描述】:

我正在尝试创建一个从包含标签的CSV 文件中绘制图表的函数:

LVL,Highscore
2,6013
2,5934
1,132
3,9560
4,13406

这是我试过的代码sn-p:

from matplotlib import style
import numpy as np
import csv

def plot():
    style.use('ggplot')

    x, y = np.loadtxt(
        'highscore.csv',
         unpack=True,
         skiprows=1,
         usecols=1,
         delimiter=','
    )

plot()

这是我得到的回溯错误:

Traceback (most recent call last):
  File "C:/Users/User/PycharmProjects/FinalYearProject/anothertest.py", line 28, in <module>
    plot()
  File "C:/Users/User/PycharmProjects/FinalYearProject/anothertest.py", line 18, in plot
    x, y = np.loadtxt('highscore.csv', unpack=True,
  File "C:\Users\User\PycharmProjects\FinalYearProject\venv\lib\site-packages\numpy\lib\npyio.py", line 1148, in loadtxt
    for x in read_data(_loadtxt_chunksize):
  File "C:\Users\User\PycharmProjects\FinalYearProject\venv\lib\site-packages\numpy\lib\npyio.py", line 992, in read_data
    vals = [vals[j] for j in usecols]
  File "C:\Users\User\PycharmProjects\FinalYearProject\venv\lib\site-packages\numpy\lib\npyio.py", line 992, in <listcomp>
    vals = [vals[j] for j in usecols]
IndexError: list index out of range

我尝试使用参数usecols=1skiprows=1 来解决它,但它似乎仍然不起作用。

【问题讨论】:

    标签: python numpy matplotlib


    【解决方案1】:

    不确定我是否完全理解您的问题,但我认为您不需要 usecols。

    >>> import numpy as np
    >>> x, y = np.loadtxt('highscore.csv', unpack=True,  skiprows=1, delimiter=',')
    
    >>> print(x)
    
    [2., 2., 1., 3., 4.]
    
    >>> print(y)
    
    [ 6013.,  5934.,   132.,  9560., 13406.]
    

    然后您可以继续绘制数据。我不确定您期望哪个图,但散点图似乎最适合这里

    >>> import matplotlib.pyplot as plt
    >>> from matplotlib import style
    
    >>> plt.style.use('ggplot')
    
    >>> plt.scatter(x, y)
    >>> plt.show()
    

    这将是什么情节:

    这能回答你的问题吗?

    【讨论】:

    • 我已经设法用您建议的代码绘制了一个图表。谢谢,但我的意图是将我的 x 值设置为 LVL 并将 y 值设置为高分......我该如何指定?
    • 我刚刚编辑了示例以包含散点图。我认为它应该解决您的第二个问题,并按照您在原始帖子中的建议使用unpack=True
    • 根据您的评论,我认为这就是我想要的...谢谢。我注意到您正在使用 collab/jupyter ,目前我正在使用 Pycharm 并且情节不再出现。我知道这已经跑题了,但我会及时通知你。
    • 最后一行plt.show() 对制作情节至关重要。你把这行加进去了吗?
    • 谢谢,通过导入import matplotlib.pyplot as plt 成功了。非常感谢!
    猜你喜欢
    • 2016-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多