【问题标题】:Plotting with Numpy Arrays用 Numpy 数组绘图
【发布时间】:2014-11-20 17:08:43
【问题描述】:

对于这篇文章的介绍性质,我们深表歉意。我对 Python 比较陌生,正在尝试学习可视化数据。我目前正在尝试绘制某些术语随时间的相对频率的时间序列。下面列出了我正在使用的数据的删减版本:

abridged_data = {'wandered': [[2005, 5.807135648994622e-06], [2006, 5.7273128507756315e-06], [2007, 6.7032709205293806e-06], [2008, 8.777680961941695e-06]], 'airport': [[2007, 1.0841708003745173e-05], [2008, 8.89465511574262e-06]], 'request': [[2005, 4.479519997292191e-05], [2006, 4.427159014360846e-05], [2007, 4.3048248627066294e-05], [2008, 4.081853901820637e-05]]}

我目前有使用 matplotlib.pyplot 模块的代码,它允许我访问这些数据并绘制一个术语随时间变化的频率,我已将其粘贴在下面。

x = np.array(mydata['wandered'])[:,0]
y = np.array(mydata['wandered'])[:,1]
plt.plot(x, y)
plt.show()

但是,我无法获取存储在abridged_data 字典中的数据并使用它在我的图表上绘制多条线。我希望有人能够向我展示访问我现有字典以绘制所有术语的数据的最佳方式。

提前感谢您的帮助。对此,我真的非常感激。

【问题讨论】:

    标签: python numpy matplotlib plot


    【解决方案1】:

    您需要遍历字典以检索其中包含的所有数据集。敌人的例子:

    for key,value in abridged_data.items():
        x = value[:,0]
        y = value[:,1]
        plt.plot(x,y,label=key)
    plt.show()
    

    正如 cmets 中所指出的,对于您使用的数据是否实际上是 numpy 数组存在歧义。如果它们实际上是列表,则运行:

    for key,value in abridged_data.items(): 
        abridged_data[key] = np.array(value)
    

    在使用上述sn-p之前。

    【讨论】:

    • 这会失败:value 是一个普通的 python 列表(不是np.ndarray
    • 我从问题标题中假设它们实际上是 numpy 数组并且它们刚刚显示为列表。
    猜你喜欢
    • 2019-08-11
    • 2015-10-14
    • 2021-05-02
    • 1970-01-01
    • 2019-04-09
    • 1970-01-01
    • 2023-01-13
    • 2011-12-10
    • 2013-08-27
    相关资源
    最近更新 更多