【发布时间】:2020-02-24 06:03:24
【问题描述】:
我不断收到“ValueError: too many values to unpack (expected 1)”
它说错误发生在p2, = plt.plot(t, p, 'g--', label='Approx'),但我没有看到该行有问题。我该如何解决?
def g(x):
return x * np.sin(1/x)
x = np.linspace(-1, 1, 30)
y = g(x)
t = np.linspace(np.min(x), np.max(x), 100)
p = np.array([g(x) for i in range(len(t))])
xx = np.linspace(np.min(x), np.max(x), 100)
yy = g(xx)
plt.figure(1)
p1, = plt.plot(x, y, 'ro', label='Data points')
p2, = plt.plot(t, p, 'g--', label='Approx')
p3, = plt.plot(xx, yy, 'blue', label='Real')
plt.legend(handles=[p1, p2, p3], loc='best')
plt.xlabel('t')
plt.ylabel('g(x)')
plt.grid(True)
plt.show()
【问题讨论】:
-
看起来你正在使用 python 但你的缩进丢失了?
-
@Ryan 抱歉,我从 Python 复制粘贴,但出错了。我现在已经更正了
-
你的代码适合我
-
能否包含完整的回溯错误?
-
语句
p = np.array([g(x) for i in range(len(t))])使len(t)复制g(x)并创建一个二维数组。这真的是你想要的p吗?
标签: python numpy matplotlib error-handling