class_docstr: Holds all the obtained explanations of a homogeneous graph.
  
  The explanation object is a :obj:`~torch_geometric.data.Data` object and
  can hold node attributions and edge attributions.
  It can also hold the original graph if needed.
  
  Args:
      node_mask (Tensor, optional): Node-level mask with shape
          :obj:`[num_nodes, 1]`, :obj:`[1, num_features]` or
          :obj:`[num_nodes, num_features]`. (default: :obj:`None`)
      edge_mask (Tensor, optional): Edge-level mask with shape
          :obj:`[num_edges]`. (default: :obj:`None`)
      **kwargs (optional): Additional attributes.
docstr: Visualizes the explanation graph with edge opacity corresponding to
  edge importance.
  
  Args:
      path (str, optional): The path to where the plot is saved.
          If set to :obj:`None`, will visualize the plot on-the-fly.
          (default: :obj:`None`)
      backend (str, optional): The graph drawing backend to use for
          visualization (:obj:`"graphviz"`, :obj:`"networkx"`).
          If set to :obj:`None`, will use the most appropriate
          visualization backend based on available system packages.
          (default: :obj:`None`)
docstr_tok: ["Visualizes","the","explanation","graph","with","edge","opacity","corresponding","to","edge","importance",".","Args",":","path","(","str",",","optional",")",":","The","path","to","where","the","plot","is","saved",".","If","set","to",":","obj",":","`","None","`",",","will","visualize","the","plot","on-the-fly",".","(","default",":",":","obj",":","`","None","`",")","backend","(","str",",","optional",")",":","The","graph","drawing","backend","to","use","for","visualization","(",":","obj",":","`","``","graphviz","''","`",",",":","obj",":","`","``","networkx","''","`",")",".","If","set","to",":","obj",":","`","None","`",",","will","use","the","most","appropriate","visualization","backend","based","on","available","system","packages",".","(","default",":",":","obj",":","`","None","`",")"]
code: def visualize_graph(
      self, path: Optional[str] = None, backend: Optional[str] = None
  ):
      r"""Visualizes the explanation graph with edge opacity corresponding to
      edge importance.
  
      Args:
          path (str, optional): The path to where the plot is saved.
              If set to :obj:`None`, will visualize the plot on-the-fly.
              (default: :obj:`None`)
          backend (str, optional): The graph drawing backend to use for
              visualization (:obj:`"graphviz"`, :obj:`"networkx"`).
              If set to :obj:`None`, will use the most appropriate
              visualization backend based on available system packages.
              (default: :obj:`None`)
      """
      edge_mask = self.get("edge_mask")
      if edge_mask is None:
          raise ValueError(
              f"The attribute 'edge_mask' is not available "
              f"in '{self.__class__.__name__}' "
              f"(got {self.available_explanations})"
          )
      visualize_graph(self.edge_index, edge_mask, path, backend)
  
imports: import copy
  from typing import Dict, List, Optional, Union
  import torch
  from torch import Tensor
  from torch_geometric.data.data import Data, warn_or_raise
  from torch_geometric.data.hetero_data import HeteroData
  from torch_geometric.explain.config import ThresholdConfig, ThresholdType
  from torch_geometric.typing import EdgeType, NodeType
  from torch_geometric.visualization import visualize_graph
label_desc: Use image node_id 6 for calling the Explanation obj's underlying member method code with example usage: obj.visualize_graph(path, backend) without return types