【发布时间】:2016-02-03 11:37:57
【问题描述】:
我试图让我的函数在 python 列表间隔上绘制一个矢量化函数,并为该图设置一个 name/title。我对 numpy 和 matplotlib 等 python 包相当陌生。我希望有人能对我的代码有所了解:
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
def test_plot(x,interval,title):
x = np.vectorize(x)
interval = [0,interval+1]
ttl = plt.title(title)
plt.plot(x,interval)
return plt.plot(x,interval)
test_plot([-1,0,1,2,3,4],2,'test')
我收到此错误:
ValueError: x and y must have same first dimension
注意:我需要 interval 成为 list。
【问题讨论】:
-
您的 x 坐标(-1 到 4)在集合中有 6 个元素。由于这条线,您的 y 坐标只有两个:
interval = [0,interval]现在,如果您在 Python 解释器中运行它,您会得到如下内容:interval = 2(在您对函数的输入中定义),interval = [0,interval+1](在您的函数),这使您的 y 坐标只有 0 和 3 可以使用(在您的 python 解释器中检查interval的值以验证这一点)。然后,糟糕的代码只能配对 x 和 y 坐标的前两个元素。 -
你为什么要
vectorize一个列表? -
@fjarri 我正在尝试对函数进行矢量化。
-
@fjarri 好问题。 OP:我认为您的代码中不需要 numpy。您可以通过不导入它来节省一些时间。在做之前想一想为什么你想在你的代码中加入任何东西。 ;)
标签: python python-3.x numpy matplotlib