class_docstr: Divisive scaling on the value axis after aggregating within groups.
  
  Parameters
  ----------
  func : str or callable
      Function called on each group to define the comparison value.
  where : str
      Query string defining the subset used to define the comparison values.
  by : list of variables
      Variables used to define aggregation groups.
  percent : bool
      If True, multiply the result by 100.
  
  Examples
  --------
  .. include:: ../docstrings/objects.Norm.rst
class_docstr_tok: ["Divisive","scaling","on","the","value","axis","after","aggregating","within","groups",".","Parameters","--","--","--","--","--","func",":","str","or","callable","Function","called","on","each","group","to","define","the","comparison","value",".","where",":","str","Query","string","defining","the","subset","used","to","define","the","comparison","values",".","by",":","list","of","variables","Variables","used","to","define","aggregation","groups",".","percent",":","bool","If","True",",","multiply","the","result","by","100",".","Examples","--","--","--","--","..","include",":",":","..","\/docstrings\/objects.Norm.rst"]
code: def _norm(self, df, var):
      if self.where is None:
          denom_data = df[var]
      else:
          denom_data = df.query(self.where)[var]
      df[var] = df[var] / denom_data.agg(self.func)
  
      if self.percent:
          df[var] = df[var] * 100
  
      return df
  
imports: from __future__ import annotations
  from dataclasses import dataclass
  from typing import ClassVar, Callable, Optional, Union, cast
  import numpy
  from pandas import DataFrame
  from seaborn._core.groupby import GroupBy
  from seaborn._core.scales import Scale
  from seaborn._core.typing import Default
label_desc: Use image node_id 1 for calling the Norm obj's underlying member method code with example usage: obj._norm(df, var) and returns: df