\begin{tikzpicture}
    % shaded rectangles
    \def \t{0.2}
    \path [fill=gray!20] (-\t, 4 - \t) rectangle (4+\t, 4 + \t);
    \path [fill=gray!20] (4 - \t, -\t) rectangle (4+\t, 4 + \t);
    
    % axes
    \draw[->,thick] (-0.1,0)--(5.0,0) node[right]{$t^\prime$};
    \draw[->,thick] (0,-0.1)--(0,5.0) node[above]{$t$};

    % non-equidistant mesh
    \def\mesh{{0,0.5,1.4,2.6,4.0}}
    
     % \draw[help lines, color=gray!70, dashed] (0.0,0.0) grid (4.9,4.9);
    \foreach \i in {1,...,4}{
        \draw[help lines, color=gray!70, dashed] (0.0, \mesh[\i])--(4.9, \mesh[\i]);
        \draw[help lines, color=gray!70, dashed] (\mesh[\i], 0.0)--(\mesh[\i], 4.9);
    };
    
    % loop over the lattice points
    \foreach \i in {0,...,4}{
        % labels
        \path[] (\mesh[\i],-0.5) node{$t_{\i}$} (-0.5,\mesh[\i]) node{$t_{\i}$};
        
        \foreach \j in {0,...,4}{
            % white circles
            \draw (\mesh[\i],\mesh[\j]) circle(1.5pt);
            
            % black circles
            \ifnum \i < 4
                \ifnum \j < 4
                    \fill[black] (\mesh[\i],\mesh[\j]) circle(1.5pt);
                \fi
            \fi
            
            \ifnum \i = 3
                \ifnum \j < 4
                    \draw[->] (\mesh[\i] + 0.15, \mesh[\j])--(\mesh[\i] + 1.25, \mesh[\j]);
                \fi
            \fi
            
            \ifnum \j = 3
                \ifnum \i < 4
                    \draw[->] (\mesh[\i], \mesh[\j] + 0.15)--(\mesh[\i],\mesh[\j] + 1.25);
                \fi
                
                \ifnum \i = 3
                    \draw[->] (\mesh[\i] + 0.15, \mesh[\j] + 0.15 )--(\mesh[\i] + 1.25,\mesh[\j] + 1.25);
                \fi
            \fi
            };
      };
\end{tikzpicture}