Я пытаюсь сделать простой разброс, а также наложить простой регресс. Все x, y указывают на график в форме рассеяния, как и ожидалось, независимо от того, что. Отлично. Моя проблема в том, что если N> 127, то все точки (x, y) построены, но линия регрессии не простирается от min (x) до max (x). Линия регрессии должна полностью простираться от левой стороны (до min (x)) вплоть до max (x). Что здесь происходит и как я могу это исправить?python Как построить линию разброса и регрессии с более чем 127 или 128?
fig1, ax1 = plt.subplots(1,1)
N=128
x=np.random.rand(N)
y=np.random.rand(N)
fit = np.polyfit(x,y,1)
fit_fn = np.poly1d(fit)
ya=fit_fn(x)
ax1.plot(x,y, 'bo',x, ya,'-k')
Я заметил, что если я изменю последнюю строку на
ax1.plot(x,y, 'bo',x, ya,'-ko')
тогда все сюжетные, но это не то, что я хочу, так как это дает мне график рассеяния для х, я вместо того, чтобы линии.
Я не кажется, чтобы получить то, что вопрос здесь, линия по-прежнему существует (из-за '-', но и все точки накладываются друг на друга по линии (из-за 'ko') .Если вам нужен правильный график рассеяния, попробуйте' plt.scatter', хотя это, по-моему, 'plt.plot' по умолчанию, когда вы не указываете обозначение строки. – ljetibo
добавил (а) фотографию. – user2015487