Нарисуйте среднюю линию рассеяния с помощью matplotlib python - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь уместить среднюю линию в точечной диаграмме с помощью matplotlib.Все, что я получаю, это:

enter image description here

Но я хочу, чтобы это было так, как эта зеленая линия

enter image description here

Я попробовал следующие два фрагмента для подгонки кривой:

z = np.polyfit(x, y, 1)
p = np.poly1d(z)
plt.plot(x,p(x),"r-")

и

def func(x, a, b, c):
  return a * np.exp(-b * x) + c
popt, pcov = curve_fit(func, x, residual)
plt.plot(x, func(x, *popt), 'r-', label='fit')

1 Ответ

0 голосов
/ 23 октября 2018

Поскольку вы не предоставляете данные, я сделал свои собственные, и я попробовал это:

N = 10000
xr = np.linspace(-1,6,N)
yr = -1*(np.ones(N)-1+xr) + 10*np.random.rand(N)
x = np.concatenate((xr[0:3800],xr[4900:]))
y = np.concatenate((yr[0:3800],yr[4900:]))

z = np.polyfit(x, y, 1)
p = np.poly1d(z)
plt.plot(x,p(x),"r-")
plt.scatter(x,y, s=2)

plt.show()

`` `

, и это вывод, который я имею, который является ожидаемым выводом:

Scatter and plot

Если вы можете поделиться частью ваших данных, я бы тоже мог их протестировать.

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