【问题标题】:'numpy.float64' object has no attribute 'plot''numpy.float64' 对象没有属性 'plot'
【发布时间】:2015-01-07 04:04:56
【问题描述】:

我有一个非常简单的代码,但最后我发现了我无法解决或找到任何解决方案的问题。 我画不出情节。我得到的只是错误 AttributeError: 'numpy.float64' object has no attribute 'plot'

import pylab as p
import numpy as np
import sympy as s
import matplotlib
from random import random

X=np.arange(0,1000)
y=np.random.randint(100,size=1000)

if len(X)==len(y):
    print "ok"
else:
    print "not ok"

 polyfit=np.polyfit(X,y,6)
 poly1d=np.poly1d(polyfit)
 print poly1d


i=1
my=[]
for i in X:
    p=poly1d(i)
    my.append(p)

 print my

 p.plot(X,my)
 p.show()

我在看文档,但我什么也没找到,谷歌也帮不了我。

【问题讨论】:

    标签: python numpy matplotlib plot


    【解决方案1】:

    您稍后在代码中意外地覆盖了 pylab 模块,将其他内容分配给 p。您可以通过导入pylab 并使用例如pylab.plot 来避免这种情况。

    您还遇到了一些缩进问题,请记住,缩进在 Python 中很重要。

    通常建议使用matplotlib.pyplot,而不是使用pylab因此,我修改了下面的代码以使用pyplot 而不是pylab。我还删除了一些不需要的代码部分,并且通常会对其进行整理。

    import matplotlib.pyplot as plt
    import numpy as np
    from random import random
    
    X=np.arange(0,1000)
    y=np.random.randint(100,size=1000)
    
    if len(X)==len(y):
        print("ok")
    else:
        print("not ok")
    
    polyfit=np.polyfit(X,y,6)
    poly1d=np.poly1d(polyfit)
    
    my=[]
    for i in X:
        p=poly1d(i)
        my.append(p)
    
    plt.plot(X,my)
    plt.show()
    

    【讨论】:

    • 当然!我现在觉得自己好蠢。谢谢你的帮助。
    • myp 替换他的对象p 而不是处理通过p 调用pylab 不是更干净(更安全)吗?
    • 你不应该导入pylab使用pyplot intead
    • 您能否更改答案中的代码(2 行)?最好不要给出显示最坏做法的答案(我可以更改它,但这似乎很粗鲁)。
    • pylab 太普遍而无法真正弃用,所以目前的计划是假装它不存在;)
    猜你喜欢
    • 2021-09-20
    • 1970-01-01
    • 2022-12-09
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    • 2014-07-06
    • 2016-11-01
    • 1970-01-01
    相关资源
    最近更新 更多