Int对象不可调用错误

时间:2018-01-28 22:22:45

标签: python matplotlib

我正在尝试使用matplotlib在python中的Jupyter笔记本中绘制一个函数。我的代码如下。我不明白为什么我收到错误消息,该消息指的是带有公式的行y = ... 这是我的代码:

d = [ ]
e = [ ]

for x in range(-4, 4, 1):
    y= -16(x**2)+20(x)+50
    d.append(x)
    e.append(y)

fig= plt.figure()
axes=fig.add_subplot(111)
axes.plot(d,e)
plt.show()

3 个答案:

答案 0 :(得分:0)

在python中,乘法是通过星号2 * 22*(2*4)完成的。

因此有问题的行应该阅读

y= -16*(x**2)+20*x+50

请注意,您通常会使用numpy来处理此类事情。

import numpy as np

x = np.linspace(-4, 4)
y= -16*(x**2)+20*x+50

import matplotlib.pyplot as plt

fig= plt.figure()
ax=fig.add_subplot(111)
ax.plot(x,y)
plt.show()

enter image description here

答案 1 :(得分:0)

罪魁祸首是:

y= -16(x**2)+20(x)+50

您编写-16(..)20(..)但这是调用函数的语法(如sin(2))。所以Python的目标是“调用16,但这失败了。

你可以通过在两者之间写下星号(*)来解决它:

y= -16*(x**2) + 20*x + 50

或者:

y= -16*x*x + 20*x + 50

虽然语法看起来有点类似于数学,但也存在一些差异。例如,花括号({})用于集和词典,方括号([])用于列表和索引。

答案 2 :(得分:0)

问题是由于()与函数/方法调用相关联,而不是您可能习惯于纸上的简单乘法。

将该行修改为:

y= -16 * (x**2) + 20 * (x) + 50