docs: def graph_draw(self, mode):
          """ Draws grid graph using networkx
  
          This method is for debugging purposes only.
          Use ding0.tools.plots.plot_mv_topology() for advanced plotting.
  
          Parameters
          ----------
          mode : str
              Mode selection 'MV' or 'LV'.
              
          Notes
          -----
          The geo coords (for used crs see database import in class `NetworkDing0`)
          are used as positions for drawing but networkx uses cartesian crs.
          Since no coordinate transformation is performed, the drawn graph representation is falsified!
          """
  
          g = self._graph
  
          if mode == 'MV':
              # get draw params from nodes and edges (coordinates, colors, demands, etc.)
              nodes_pos = {}; demands = {}; demands_pos = {}
              nodes_color = []
              for node in g.nodes():
                  if isinstance(node, (StationDing0,
                                       LVLoadAreaCentreDing0,
                                       CableDistributorDing0,
                                       GeneratorDing0,
                                       CircuitBreakerDing0)):
                      nodes_pos[node] = (node.geo_data.x, node.geo_data.y)
                      # TODO: MOVE draw/color settings to config
                  if node == self.station():
                      nodes_color.append((1, 0.5, 0.5))
                  else:
                      #demands[node] = 'd=' + '{:.3f}'.format(node.grid.region.peak_load_sum)
                      #demands_pos[node] = tuple([a+b for a, b in zip(nodes_pos[node], [0.003]*len(nodes_pos[node]))])
                      nodes_color.append((0.5, 0.5, 1))
  
              edges_color = []
              for edge in self.graph_edges():
                  if edge['branch'].critical:
                      edges_color.append((1, 0, 0))
                  else:
                      edges_color.append((0, 0, 0))
  
              plt.figure()
              nx.draw_networkx(g, nodes_pos, node_color=nodes_color, edge_color=edges_color, font_size=8)
              #nx.draw_networkx_labels(g, demands_pos, labels=demands, font_size=8)
              plt.show()
  
          elif mode == 'LV':
              nodes_pos = {}
              nodes_color = []
  
              for node in g.nodes():
                  # get neighbors of station (=first node of each branch)
                  station_neighbors = sorted(
                      g.neighbors(self.station()), key=lambda _: repr(_))
  
                  # set x-offset according to count of branches
                  if len(station_neighbors) % 2 == 0:
                      x_pos_start = -(len(station_neighbors) // 2 - 0.5)
                  else:
                      x_pos_start = -(len(station_neighbors) // 2)
  
                  # set positions
                  if isinstance(node, CableDistributorDing0):
                      if node.in_building:
                          nodes_pos[node] = (x_pos_start + node.branch_no - 1 + 0.25, -node.load_no - 2)
                          nodes_color.append((0.5, 0.5, 0.5))
                      else:
                          nodes_pos[node] = (x_pos_start + node.branch_no - 1, -node.load_no - 2)
                          nodes_color.append((0.5, 0.5, 0.5))
  
                  elif isinstance(node, LoadDing0):
                      nodes_pos[node] = (x_pos_start + node.branch_no - 1 + 0.5, -node.load_no - 2 - 0.25)
                      nodes_color.append((0.5, 0.5, 1))
                  elif isinstance(node, GeneratorDing0):
                      # get neighbor of geno
                      neighbor = list(g.neighbors(node))[0]
  
                      # neighbor is cable distributor of building
                      if isinstance(neighbor, CableDistributorDing0):
                          nodes_pos[node] = (x_pos_start + neighbor.branch_no - 1 + 0.5, -neighbor.load_no - 2 + 0.25)
                      else:
                          nodes_pos[node] = (1,1)
  
                      nodes_color.append((0.5, 1, 0.5))
                  elif isinstance(node, StationDing0):
                      nodes_pos[node] = (0, 0)
                      nodes_color.append((1, 0.5, 0.5))
  
              plt.figure()
              nx.draw_networkx(g, nodes_pos, node_color=nodes_color, font_size=8, node_size=100)
              plt.show()