code: def construct_mesh_for_1d_array(x_values):
      
  
      if not isinstance(x_values, np.ndarray):
          try: x_values = np.array(x_values)
          except: raise TypeError("Can not convert to numpy.ndarray: {0}".format(x_values))
      else: assert (x_values.ndim == 1) and (x_values.size >= 2)
  
      x_mid_points = 0.5 * (x_values[1:] + x_values[:-1])
  
      x_min_point = x_values[0] - (x_mid_points[0] - x_values[0])
      x_max_point = x_values[-1] + (x_values[-1] - x_mid_points[-1])
  
      x_mesh_values = np.empty((len(x_values)+1,), dtype=float)
      x_mesh_values[0] = x_min_point
      x_mesh_values[-1] = x_max_point
      x_mesh_values[1:-1] = x_mid_points
  
      return x_mesh_values
docs: Construct the corresponding 1D mesh from 1D array for pcolormesh() in ```matplotlib```