【问题标题】:Plotting vertical axis lines using values from an array使用数组中的值绘制垂直轴线
【发布时间】:2020-02-16 23:22:14
【问题描述】:

我在 Jupyter 中有以下数组,我用它来绘制从 x 轴开始的垂直线。

array([6, 10, 18, 23, 29, 33, 50])

我正在使用 pylabmatplotlib 来执行此操作。

到目前为止,我已经生成了以下代码:

mylist = array([6, 10, 18, 23, 29, 33, 50])
mylist
for i in mylist:
  axvline(mylist[i])

但是,我收到以下错误,并且只绘制了我的最后一个值:

---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-106-37afa3c95407> in <module>
      2 mylist
      3 for i in mylist:
----> 4     axvline(mylist[i])

IndexError: index 10 is out of bounds for axis 0 with size 7

我很难理解如何解决问题。

我在这里犯了什么错误?

Photo showing graph being produced

由于是本网站的新用户,我无法在问题中呈现我的图像。

【问题讨论】:

    标签: python arrays matplotlib


    【解决方案1】:

    您错误地使用了索引。当您执行for i in mylist: 时,您将直接遍历元素。所以你不能访问元素然后使用mylist[i],但你需要直接使用i

    IndexError:索引 10 超出轴 0 的范围,大小为 7

    当您访问第二个元素 10 时会发生上述错误。当i=10 时,您将其用作mylist[10],这会引发错误,因为mylist 的长度为7,因为它有7 个元素。

    正确方法:

    for i in mylist:
        plt.axvline(i)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-18
      • 2011-02-09
      • 2015-11-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 2021-01-13
      相关资源
      最近更新 更多