class_docstr: Graph super class containing generic common functions
class_docstr_tok: ["Graph","super","class","containing","generic","common","functions"]
docstr: Init common graph svg structure
code: def _make_graph(self):
      """Init common graph svg structure"""
      self.nodes["graph"] = self.svg.node(
          class_="graph %s-graph %s"
          % (
              self.__class__.__name__.lower(),
              "horizontal" if self.horizontal else "vertical",
          )
      )
      self.svg.node(
          self.nodes["graph"],
          "rect",
          class_="background",
          x=0,
          y=0,
          width=self.width,
          height=self.height,
      )
      self.nodes["plot"] = self.svg.node(
          self.nodes["graph"],
          class_="plot",
          transform="translate(%d, %d)"
          % (self.margin_box.left, self.margin_box.top),
      )
      self.svg.node(
          self.nodes["plot"],
          "rect",
          class_="background",
          x=0,
          y=0,
          width=self.view.width,
          height=self.view.height,
      )
      self.nodes["title"] = self.svg.node(
          self.nodes["graph"], class_="titles"
      )
      self.nodes["overlay"] = self.svg.node(
          self.nodes["graph"],
          class_="plot overlay",
          transform="translate(%d, %d)"
          % (self.margin_box.left, self.margin_box.top),
      )
      self.nodes["text_overlay"] = self.svg.node(
          self.nodes["graph"],
          class_="plot text-overlay",
          transform="translate(%d, %d)"
          % (self.margin_box.left, self.margin_box.top),
      )
      self.nodes["tooltip_overlay"] = self.svg.node(
          self.nodes["graph"],
          class_="plot tooltip-overlay",
          transform="translate(%d, %d)"
          % (self.margin_box.left, self.margin_box.top),
      )
      self.nodes["tooltip"] = self.svg.node(
          self.nodes["tooltip_overlay"],
          transform="translate(0 0)",
          style="opacity: 0",
          **{"class": "tooltip"},
      )
  
      self.svg.node(
          self.nodes["tooltip"],
          "rect",
          rx=self.tooltip_border_radius,
          ry=self.tooltip_border_radius,
          width=0,
          height=0,
          **{"class": "tooltip-box"},
      )
      self.svg.node(self.nodes["tooltip"], "g", class_="text")
  
imports: from math import ceil, cos, sin, sqrt
  from pygal import stats
  from pygal._compat import is_list_like
  from pygal.graph.public import PublicApi
  from pygal.interpolate import INTERPOLATIONS
  from pygal.util import cached_property, compute_scale, cut, decorate, filter_kwargs, get_text_box, get_texts_box, majorize, rad, reverse_text_len, split_title, truncate
  from pygal.view import LogView, ReverseView, View, XYLogView
label_desc: Use image node_id 4 for calling the Graph obj's underlying member method code with example usage: obj._make_graph() without return types