Использовать более точный массив значений x, чтобы сгенерировать строку наилучшего соответствия в matplotlib? - PullRequest
0 голосов
/ 08 ноября 2018

В настоящее время я застрял в проблеме, из-за которой мне нужно сгенерировать кривую наилучшего соответствия, от которой мне требуется использовать более точный массив x от 250 до 100 с шагом 10. Вот мой код ниже. .

import numpy as np
from numpy import polyfit, polyval
import matplotlib.pyplot as plt

x = [250,300,350,400,450,500,550,600,700,750,800,900,1000]
x = np.array(x)
y = [0.791, 0.846, 0.895, 0.939, 0.978, 1.014, 1.046, 1.075, 1.102, 1.148, 1.169, 1.204, 1.234]
y= np.array(y)

r = polyfit(x,y,3)
fit = polyval(r, x)

plt.plot(x, fit, 'b')
plt.plot(x,y, color = 'r', marker = 'x')
plt.show()

Ответы [ 3 ]

0 голосов
/ 08 ноября 2018

Для создания поэтапного массива вы можете использовать numpy.arange([start,] stop[, step]):

import numpy as np
x = np.arange(250,1000,10)
0 голосов
/ 08 ноября 2018

Чтобы сгенерировать значения от 250 до 1000, используйте диапазон (начало, остановка, шаг):

x = range(250,1001,10)
x = np.array(x)
0 голосов
/ 08 ноября 2018

Если я правильно понимаю, вы пытаетесь создать массив чисел от a до b с помощью шагов c.

С чистым питоном вы можете использовать:

list(range(a, b, c)) #in your case list(range(250, 1000, 10))

Или, поскольку вы используете numpy, вы можете напрямую создать массив numpy:

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