code: def plot_in_3d(self, X, y=None):
      X_transformed = self._transform(X, dim=3)
      x1 = X_transformed[:, 0]
      x2 = X_transformed[:, 1]
      x3 = X_transformed[:, 2]
      fig = plt.figure()
      ax = fig.add_subplot(111, projection="3d")
      ax.scatter(x1, x2, x3, c=y)
      plt.show()
  
file_path: ML-From-Scratch/mlfromscratch/utils/misc.py
imports: import progressbar
  from mpl_toolkits.mplot3d import Axes3D
  import matplotlib.pyplot
  import matplotlib.cm
  import matplotlib.colors
  import numpy
  from mlfromscratch.utils.data_operation import calculate_covariance_matrix
  from mlfromscratch.utils.data_operation import calculate_correlation_matrix
  from mlfromscratch.utils.data_manipulation import standardize
label_desc: Use image node_id 5 for calling the Plot obj's underlying member method code with example usage: obj.plot_in_3d(X, y) without return types