docstr: Construct a new Rotation object
  
  Parameters
  ----------
  arg
      dict of properties compatible with this constructor or
      an instance of :class:`plotly.graph_objs.layout.geo.pro
      jection.Rotation`
  lat
      Rotates the map along meridians (in degrees North).
  lon
      Rotates the map along parallels (in degrees East).
      Defaults to the center of the `lonaxis.range` values.
  roll
      Roll the map (in degrees) For example, a roll of 180
      makes the map appear upside down.
  
  Returns
  -------
  Rotation
code: def __init__(self, arg=None, lat=None, lon=None, roll=None, **kwargs):
      """
      Construct a new Rotation object
  
      Parameters
      ----------
      arg
          dict of properties compatible with this constructor or
          an instance of :class:`plotly.graph_objs.layout.geo.pro
          jection.Rotation`
      lat
          Rotates the map along meridians (in degrees North).
      lon
          Rotates the map along parallels (in degrees East).
          Defaults to the center of the `lonaxis.range` values.
      roll
          Roll the map (in degrees) For example, a roll of 180
          makes the map appear upside down.
  
      Returns
      -------
      Rotation
      """
      super(Rotation, self).__init__("rotation")
  
      if "_parent" in kwargs:
          self._parent = kwargs["_parent"]
          return
  
      # Validate arg
      # ------------
      if arg is None:
          arg = {}
      elif isinstance(arg, self.__class__):
          arg = arg.to_plotly_json()
      elif isinstance(arg, dict):
          arg = _copy.copy(arg)
      else:
          raise ValueError(
              """\
  The first argument to the plotly.graph_objs.layout.geo.projection.Rotation
  constructor must be a dict or
  an instance of :class:`plotly.graph_objs.layout.geo.projection.Rotation`"""
          )
  
      # Handle skip_invalid
      # -------------------
      self._skip_invalid = kwargs.pop("skip_invalid", False)
      self._validate = kwargs.pop("_validate", True)
  
      # Populate data dict with properties
      # ----------------------------------
      _v = arg.pop("lat", None)
      _v = lat if lat is not None else _v
      if _v is not None:
          self["lat"] = _v
      _v = arg.pop("lon", None)
      _v = lon if lon is not None else _v
      if _v is not None:
          self["lon"] = _v
      _v = arg.pop("roll", None)
      _v = roll if roll is not None else _v
      if _v is not None:
          self["roll"] = _v
  
      # Process unknown kwargs
      # ----------------------
      self._process_kwargs(**dict(arg, **kwargs))
  
      # Reset skip_invalid
      # ------------------
      self._skip_invalid = False
  
file_path: catboost/contrib/python/plotly/py3/plotly/graph_objs/layout/geo/projection/_rotation.py
imports: from plotly.basedatatypes import BaseLayoutHierarchyType
  import copy
label_desc: Use image node_id 8 to create a new Rotation object from inherited base classes: _BaseLayoutHierarchyType with example: obj = Rotation(arg, lat, lon, roll)