Python: как мне получить более плавную начальную точку на графике? - PullRequest
0 голосов
/ 02 мая 2018

То, что я хочу получить, это точка, (x, y), где значение y становится более плавным для данных значений x и y.

Например,

x = range(10)
y = [0.3, 0.37, 0.41, 0.52, 0.64, 0.68, 0.71, 0.72, 0.73, 0.74]
plt.plot(x, y)

enter image description here

Я хочу получить точку красного круга (или близкую точку), где график начинает стабилизироваться.

Как я могу это сделать?

enter image description here

1 Ответ

0 голосов
/ 02 мая 2018

То, что вы ищете, это наклон или, точнее, разница первого порядка, чтобы получить представление о том, где кривая начинает сглаживаться, вы можете рассчитать разницу / наклон первого порядка и найти первый индекс. где уклон ниже определенного порога:

import matplotlib.pyplot as plt
import numpy as np

x = np.array(range(10))
y = np.array([0.3, 0.37, 0.41, 0.52, 0.64, 0.68, 0.71, 0.72, 0.73, 0.74])

slopes = np.diff(y) / np.diff(x)
idx = np.argmax(slopes < 0.02)  # find out the first index where slope is below a threshold

fig, ax = plt.subplots()

ax.plot(x, y)
ax.scatter(x[idx], y[idx], s=200, facecolors='none', edgecolors='r')

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...