code: def boxplot(df, plot_mean=False, plot_ids=None, title=None, xlabel=None, ylabel=None):
      
  
      df = df.applymap(float)
      description = df.apply(pd.DataFrame.describe, axis=1)
  
      # plot
      plt = plot_style()
  
      plt.boxplot(df)
      #plt.setp(bp['boxes'], color='black')
      #plt.setp(bp['whiskers'], color='black')
      if plot_ids is not None:
          for id in plot_ids:
              if id in df.columns:
                  plt.scatter(x=range(1, len(df) + 1), y=df[id], label=str(id))
  
      if plot_mean:
          plt.scatter(x=range(1, len(df) + 1), y=description['mean'], label="Mean", color='k', s=30, marker='+')
  
      ax = plt.gca()
      ax.set_xticklabels(df.index)
      #plt.xticks(rotation=45)
  
      plt.legend()
      if title is not None:
          plt.title(title)
      if xlabel is not None:
          plt.xlabel(xlabel)
      if ylabel is not None:
          plt.ylabel(ylabel)
  
      return plt.gcf()
docs: Plot boxplots
  
      Plot the boxplots of a dataframe in time
  
      Parameters
      ----------
      df: Pandas Dataframe
          Every collumn is a timeseries
      plot_mean: bool
          Wether or not to plot the means
      plot_ids: [str]
          List of id's to plot
  
      Returns
      -------
      matplotlib figure