【问题标题】:using cos function in plotting with matplotlib在 matplotlib 绘图中使用 cos 函数
【发布时间】:2013-10-30 00:55:25
【问题描述】:

我有一个由 8 列组成的简单文本文件,我使用 loadtxt 函数读取它。我想绘制为 y 轴 column2-column5 和 x 轴 column1-column4 除以 cos(column2-column5) 所以我输入了这个命令

>>> y = data[:,2] - data[:,5]
>>> x = (data[:,1] - data[:,4])/cos(y)
and it gave this error

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'cos' is not defined

有什么问题?

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    您可能想使用 numpy 数组。然后你可以使用元素明智的划分。此外,numpy 提供了所有必要的数学函数。

    import numpy as np
    d = np.asarray(data)
    y = d[:,2] - d[:,5]
    x = (d[:,1] - d[:,4])/np.cos(y)
    

    【讨论】:

    • 正确,但由于他们使用 loadtxt 和 2D 索引,我确信变量已经是 numpy 数组。
    • 由于不清楚他正在使用哪个loadtxt 函数,np.asarray 确保我们将拥有 ndarrays。如果它已经是一个,则什么都不会发生。
    • 它被标记为matplotlib,所以它肯定是有问题的numpy loadtxt。你还能像data[:,2] 这样索引什么? (不是反问)
    【解决方案2】:

    cosmath 模块中(以及其他数学库,如numpy 等)

    import math
    math.cos(3) 
    

    numpy

    import numpy
    numpy.cos( np.array( [ [1,2], [3,4] ] ) )
    

    【讨论】:

    • -1 参数显然是一个数组,而不是一个标量,所以math.cos 不适用于他们的用例
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-27
    • 1970-01-01
    • 2016-05-26
    • 2018-06-03
    • 1970-01-01
    • 1970-01-01
    • 2020-09-26
    相关资源
    最近更新 更多