我们从Python开源项目中,提取了以下1个代码示例,用于说明如何使用matplotlib.cm.spectral()。
def multi_cut_spectral(cluster_list, affinity_matrix, dist_matrix, n_jobs=-1, sample_names=None): """Perform a spectral clustering with variable cluster sizes. Parameters ---------- cluster_list : array-like Contains the list of the number of clusters to use at each step. affinity_matrix : array-like Precomputed affinity matrix. dist_matrix : array-like Precomputed distance matrix between points. Returns ------- queue_y : array-like Array to be visualised on the y-axis. Contains the list of average silhouette for each number of clusters present in cluster_list. """ def _internal(cluster_list, affinity_matrix, dist_matrix, idx, n_jobs, n, queue_y): for i in range(idx, n, n_jobs): sp = SpectralClustering(n_clusters=cluster_list[i], affinity='precomputed', norm_laplacian=True, n_init=1000) sp.fit(affinity_matrix) save_results_clusters("res_spectral_{:03d}_clust.csv" .format(cluster_list[i]), sample_names, sp.labels_) silhouette_list = silhouette_samples(dist_matrix, sp.labels_, metric="precomputed") queue_y[i] = np.mean(silhouette_list) n = len(cluster_list) if n_jobs == -1: n_jobs = min(mp.cpu_count(), n) queue_y = mp.Array('d', [0.] * n) ps = [] try: for idx in range(n_jobs): p = mp.Process(target=_internal, args=(cluster_list, affinity_matrix, dist_matrix, idx, n_jobs, n, queue_y)) p.start() ps.append(p) for p in ps: p.join() except (KeyboardInterrupt, SystemExit): extra.term_processes(ps, 'Exit signal received\n') except BaseException as e: extra.term_processes(ps, 'ERROR: %s\n' % e) return queue_y