code: def visualize(x, y, xlabel=None, ylabel=None, title=None, ylim=None):
      
      total_seconds = (x[-1] - x[0]).total_seconds()
      if total_seconds <= 86400 * 1 * 3:
          return plot_one_day(x, y, xlabel, ylabel, title, ylim)
      
      elif total_seconds <= 86400 * 7 * 2:
          return plot_one_week(x, y, xlabel, ylabel, title, ylim)
      
      elif total_seconds <= 86400 * 30 * 1.5:
          return plot_one_month(x, y, xlabel, ylabel, title, ylim)
      
      elif total_seconds <= 86400 * 90 * 1.5:
          return plot_one_quarter(x, y, xlabel, ylabel, title, ylim)
      
      elif total_seconds <= 86400 * 365 * 1.5:
          return plot_one_year(x, y, xlabel, ylabel, title, ylim)
docs: A universal function plot arbitrary time series data.