Контурный график меняется при изменении диапазонаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Контурный график меняется при изменении диапазона

Сообщение Anonymous »

У меня вопрос о создании контурного графика с помощью matplotlib.
Если я попытаюсь построить одну и ту же функцию с двумя разными диапазонами переменных (второй содержит другой), Я получаю два разных графика.
Функция:

Код: Выделить всё

tData = np.linspace(0,2,11)
yData = np.array([0.99, 0.81, 0.71, 0.55, 0.50, 0.42, 0.24, 0.32, 0.17, 0.26, 0.19])
def dydt(t,y,beta):
return -beta*y

def funD(y0, beta, tData, yData):
res = solve_ivp(dydt, [tData[0],tData[-1]], [y0], t_eval=tData, args=(beta,),rtol=1e-6, method='RK45')
err = 0
for i in range(tData.shape[0]):
err = err + (yData[i]-res.y[0,i])**2
return err
Вот код:
Первый сюжет:

Код: Выделить всё

ygrid = np.linspace(0,2,100)
betagrid = np.linspace(0,2,100)
z = np.ones((100,100))
for i in range(100):
for j in range(100):
z[i,j] = funD(ygrid[i], betagrid[j], tData, yData)
fig, ax = plt.subplots()
cnt = ax.contour(ygrid,betagrid,z,1000)
Изображение

Второй сюжет:

Код: Выделить всё

ygrid = np.linspace(0,2,100)
betagrid = np.linspace(0,4,100)
z = np.ones((100,100))
for i in range(100):
for j in range(100):
z[i,j] = funD(ygrid[i], betagrid[j], tData, yData)
fig, ax = plt.subplots()
cnt = ax.contour(ygrid,betagrid,z,1000)
Изображение

I пробовал их перекрывать, но они не совпадают.

Код: Выделить всё

ygrid = np.linspace(0,2,100)
betagrid = np.linspace(0,2,100)
z = np.ones((100,100))
for i in range(100):
for j in range(100):
z[i,j] = funD(ygrid[i], betagrid[j], tData, yData)

ygrid1 = np.linspace(0,2,100)
betagrid1 = np.linspace(0,4,100)
z1 = np.ones((100,100))
for i in range(100):
for j in range(100):
z1[i,j] = funD(ygrid1[i], betagrid1[j], tData, yData)
fig, ax = plt.subplots()
cnt = ax.contour(ygrid,betagrid,z,100)
cnt1 = ax.contour(ygrid,betagrid,z1,100,alpha=0.5)
два графика
Я попробовал и с более простой функцией:

Код: Выделить всё

def func(x,y):
return x**2+y**2

ygrid = np.linspace(0,2,100)
betagrid = np.linspace(0,2,100)
z = np.ones((100,100))
for i in range(100):
for j in range(100):
z[i,j] = func(ygrid[i], betagrid[j])

ygrid1 = np.linspace(0,2,100)
betagrid1 = np.linspace(0,4,100)
z1 = np.ones((100,100))
for i in range(100):
for j in range(100):
z1[i,j] = func(ygrid1[i], betagrid1[j])
fig, ax = plt.subplots()
cnt = ax.contour(ygrid,betagrid,z,100)
cnt1 = ax.contour(ygrid,betagrid,z1,100,alpha=0.5)
И вот результат:
сюжет

Подробнее здесь: https://stackoverflow.com/questions/787 ... ge-changes
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Контурный график меняется при изменении диапазона
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Контурный график меняется при изменении диапазона
    Anonymous » » в форуме Python
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Как разрезать 2D-линейный график, чтобы создать 3D-график поверхности (или контурный график)? Питон
    Anonymous » » в форуме Python
    0 Ответы
    73 Просмотры
    Последнее сообщение Anonymous
  • Контурный график и Cartopy — вид с геостационарного спутника [графики и код]
    Anonymous » » в форуме Python
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Как добавить линию x=y на контурный график?
    Гость » » в форуме Python
    0 Ответы
    30 Просмотры
    Последнее сообщение Гость

Вернуться в «Python»