code: def annot_boxplot(ax,dmetrics,xoffwithin=0.85,xoff=1.6,
                    yoff=0,annotby='xs',
                    test=False):
      
      xlabel=ax.get_xlabel()
      ylabel=ax.get_ylabel()
      if test:
          dmetrics.index.name='index'
          dmetrics.columns.name='columns'
          dm=dmetrics.melt()
          dm['value']=1
          ax=sns.boxplot(data=dm,x='columns',y='value')
      for huei,hue in enumerate(dmetrics.index):  
          for xi,x in enumerate(dmetrics.columns):
              if not pd.isnull(dmetrics.loc[hue,x]):
                  xco=xi+(huei*xoffwithin/len(dmetrics.index)+(xoff/len(dmetrics.index)))
                  yco=ax.get_ylim()[1]+yoff
                  if annotby=='ys':
                      xco,yco=yco,xco
                  ax.text(xco,yco,dmetrics.loc[hue,x],ha='center')
      ax.set_xlabel(xlabel)
      ax.set_ylabel(ylabel)
      return ax
docs: :param dmetrics: hue in index, x in columns
      
      #todos
      #x|y off in %
      xmin,xmax=ax.get_xlim()
      (xmax-xmin)+(xmax-xmin)*0.35+xmin