Невозможно получить сюжет в python - PullRequest
0 голосов
/ 05 января 2020

Я написал код, который отображает сигмовидную функцию. Код довольно простой и маленький. Это тоже не выдает никакой ошибки. Но когда я запускаю его, я получаю белое поле на графике вместо сигмовидной кривой. Я не могу понять, где я иду не так. Пожалуйста, помогите

import matplotlib.pyplot as plt
import math as mt

def sigmoid(x):
    for i in range(10):
        x = x + 0.1
        sigmoid = (1/(1 + mt.exp(-x)))
    return x, sigmoid

x, sig = sigmoid(0)   
plt.plot(x, sig)
plt.show()   

1 Ответ

0 голосов
/ 05 января 2020

Вы должны предоставить plot массив значений x и массив значений y. Вместо этого вы предоставляете ему одно значение x и одно значение y. x и sigmoid перезаписываются при каждой итерации, и возвращаются только последние

Кроме того, очень редко бывает полезно присвоить функции и переменной одно и то же имя.

PS Ваш код отображает только положительную сторону, он пропускает отрицательную сторону.

Учитывайте:

def sigmoid(interval):
    xs = []
    ys = []
    for x in range(-interval, interval + 1):
        xs.append(x)
        ys.append(1 / (1 + mt.exp(-x)))
    return xs, ys

x, y = sigmoid(5)
plt.plot(x, y)
plt.show()

Выходы

enter image description here

...