code: def testVisualize2DClustersThreeCanvasesNumpy(self):
      sample_simple1 = read_sample(
          SIMPLE_SAMPLES.SAMPLE_SIMPLE1, return_type="numpy"
      )
      sample_simple2 = read_sample(
          SIMPLE_SAMPLES.SAMPLE_SIMPLE2, return_type="numpy"
      )
      sample_simple3 = read_sample(
          SIMPLE_SAMPLES.SAMPLE_SIMPLE3, return_type="numpy"
      )
  
      clusters_sample1 = (
          dbscan(sample_simple1, 0.4, 2, False).process().get_clusters()
      )
      clusters_sample2 = (
          dbscan(sample_simple2, 1, 2, False).process().get_clusters()
      )
      clusters_sample3 = (
          dbscan(sample_simple3, 0.7, 3, False).process().get_clusters()
      )
  
      visualizer = cluster_visualizer(3)
      visualizer.append_clusters(
          clusters_sample1, sample_simple1, 0, markersize=5
      )
      visualizer.append_clusters(
          clusters_sample2, sample_simple2, 1, markersize=5
      )
      visualizer.append_clusters(
          clusters_sample3, sample_simple3, 2, markersize=5
      )
      figure = visualizer.show()
      visualizer.close(figure)
  
imports: import unittest
  import matplotlib
  import matplotlib.pyplot
  import numpy
  import random
  from pyclustering.samples.definitions import SIMPLE_SAMPLES, FCPS_SAMPLES
  from pyclustering.utils import read_sample
  from pyclustering.cluster import cluster_visualizer
  from pyclustering.cluster.dbscan import dbscan
  from pyclustering.cluster.cure import cure
label_desc: Use image node_id 12 for calling the Test obj's underlying member method code with example usage: obj.testVisualize2DClustersThreeCanvasesNumpy() without return types