I have to plot 3 surfaces on one figure to show that with increasing number of calculations each answer becomes closer to the correct one. (It is solving PDE by finite difference numerical method). However my calculations are very close to the right answer from the very first step, so surfaces on the plot are not distinguishable at all.
I have tried to change the scale of mesh grid (my found answer is in variable y1, the correct one is in variable u)![enter image description here] but there is no difference (https://i.stack.imgur.com/wWKue.jpg)
I am expecting to show this space between them without using any tools after compilation

my code:
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import cm
a = 0.25
M1, M2, M3, M4, M5 = 100, 200, 400, 100, 100
N1, N2, N3, N4, N5 = 40, 80, 160, 80, 20
nu1, nu2, nu3, nu4, nu5 = 0.8, 0.8, 0.8, 0.4, 1.6
h1, h2, h3, h4, h5 = 1/M1, 1/M2, 1/M3, 1/M4, 1/M5
tau1, tau2, tau3, tau4, tau5 = (nu1 * h1)/a, (nu2 * h2)/a, (nu3 * h3)/a, (nu4 * h4)/a, (nu5 * h5)/a
Mp1, Mp2, Mp3, Mp4, Mp5 = 10, 20, 40, 10, 10
T1, T2, T3, T4, T5 = N1*tau1, N2*tau2, N3*tau3, N4*tau4, N5*tau5
def net(M, N, nu, h, tau, T):
x = np.arange(0, 1+h, h) # len(x) = 101
t = np.arange(0, T+tau, tau) # len(t) = 41
y_start = 1 + 4*x
y_board = np.exp(t)
rights = 1+np.exp(t)
y_ans = np.zeros((N+1, M+1)) # y_ans.shape = (101,41)
for j in range(M+1):
y_ans[0][j] = y_start[j] # rows
for n in range(N+1):
y_ans[n][0] = y_board[n] # columns
for n in range(0, N):
for j in range(1, M+1):
y_ans[n+1][j] = nu*y_ans[n][j-1] + (1-nu)*y_ans[n][j] + tau*rights[n]
u = np.zeros((N+1, M+1))
for n in range(N + 1):
for j in range(M + 1):
u[n][j] = 4 * x[j] + np.exp(t[n])
return(y_ans, u, x, t)
y1, u1, x1, t1 = net(M1, N1, nu1, h1, tau1, T1)
fig = plt.figure()
ax1 = fig.add_subplot(1, 1, 1, projection='3d')
X1, Y1 = np.meshgrid(np.linspace(0, 1, M1+1), np.linspace(0, T1, N1+1))
ax1.plot_surface(X1, Y1, u1, cmap=cm.BuGn, linewidth=1, antialiased=False, label = 'y1')
ax1.plot_surface(X1, Y1, y1, cmap=cm.Reds, linewidth=1, antialiased=False, label = 'y1')
plt.show()