code: def transposable_node(self, parent=None, tag='g', attrib=None, **extras):
          
          if self.graph.horizontal:
              for key1, key2 in (('x', 'y'), ('width', 'height'), ('cx', 'cy')):
                  attr1 = extras.get(key1, None)
                  attr2 = extras.get(key2, None)
                  if attr2:
                      extras[key1] = attr2
                  elif attr1:
                      del extras[key1]
                  if attr1:
                      extras[key2] = attr1
                  elif attr2:
                      del extras[key2]
          return self.node(parent, tag, attrib, **extras)
docs: Make a new svg node which can be transposed if horizontal