code: def plot_matrix(self):
      matrix_data = pd.DataFrame(
          confusion_matrix(self.y_test, self.y_pred)
      )
      matrix_data = (
          matrix_data.astype("float")
          / matrix_data.sum(axis=1)[:, np.newaxis]
          * 100
      )
  
      z = np.array(matrix_data).round(2)
  
      x = list(matrix_data.columns)
      y = list(matrix_data.index)
  
      # change each element of z to type string for annotations
      z_text = [[str(y) for y in x] for x in z]
  
      # set up figure
      fig_matrix = ff.create_annotated_heatmap(
          z, x=x, y=y, annotation_text=z_text, colorscale="Viridis"
      )
  
      # add title
      fig_matrix.update_layout(
          title_text="<i><b>Confusion matrix (%)</b></i>",
          xaxis=dict(title="Predicted Label"),
          yaxis=dict(title="True Label"),
      )
  
      # adjust margins to make room for yaxis title
      fig_matrix.update_layout(margin=dict(t=50, l=200))
  
      # add colorbar
      fig_matrix["data"][0]["showscale"] = True
  
      return fig_matrix
  
imports: import pandas
  import numpy
  import sklearn
  from sklearn import *
  from sklearn.ensemble import RandomForestClassifier
  from sklearn.model_selection import train_test_split
  from sklearn.preprocessing import label_binarize
  from sklearn.metrics import *
  from itertools import cycle
  import colorlover
  import plotly.figure_factory
  import plotly.graph_objects
label_desc: Use image node_id 7 for calling the performance_metrics obj's underlying member method code with example usage: obj.plot_matrix() and returns: fig_matrix