关于python:绘制一个返回浮点数组的自定义函数

Plotting a custom function that returns an array of floats

我在python3中的自定义功能如下:

1
2
3
4
5
6
7
8
9
myFunction(A, x)
"""
Args:
A (list)
x (float)
Returns:
Y: numpy array of floats [y1,y2,...,y(len(A))]
"""

return Y

我要做的是为某个选定的常量列表A绘制一个图,其中x轴是输入参数x(在某些值之间的范围,例如0,10),y轴是输出数组中的浮点数(因此多条曲线,不同颜色)。我在想做这样的事将matplotlib.pyplot导入为plt

1
2
3
A = [5,10,15,20]
x = numpy.linspace(0,10,1000) #1000 numbers between 0 and 10
plt.plot(x,myFunction(A, x))

但我得到了错误

1
TypeError: only size-1 arrays can be converted to Python scalars

谢谢


看来我最终找到了方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
x = np.linspace(0,100,1001)
resultSet = [] #initialize list to store results


for i in range(0, len(x)):
    resultSet.append(list(myFunction(A, x)))

resCount = len(resultSet[0])
labelList = [] #initialize list for legend names
for i in range(0,resCount):
    labelList.append("Line"+str(i+1))

lineObjects = plt.plot(list(x),resultSet)
plt.xlabel("x label")
plt.ylabel("y label")

plt.legend(lineObjects,labelList)
plt.show()