def DBN_visualize_pca_2d(doc_codes, doc_labels, classes_to_visual, save_file):
"""
Visualize the input data on a 2D PCA plot. Depending on the number of components,
the plot will contain an X amount of subplots.
@param doc_codes:
@param number_of_components: The number of principal components for the PCA plot.
"""
# markers = ["p", "s", "h", "H", "+", "x", "D"]
markers = ["o", "v", "8", "s", "p", "*", "h", "H", "+", "x", "D"]
C = len(classes_to_visual)
while True:
if C <= len(markers):
break
markers += markers
class_ids = dict(zip(classes_to_visual.keys(), range(C)))
codes, labels = doc_codes, doc_labels
X = np.r_[list(codes)]
X = PCA(n_components=3).fit_transform(X)
plt.figure(figsize=(10, 10), facecolor='white')
x_pc, y_pc = 1, 2
for c in classes_to_visual.keys():
idx = np.array(labels) == c
# idx = get_indices(labels, c)
plt.plot(X[idx, x_pc], X[idx, y_pc], linestyle='None', alpha=0.6, marker=markers[class_ids[c]],
markersize=6, label=classes_to_visual[c])
# plt.legend(c)
plt.title('Projected on the first 2 PCs')
plt.xlabel('PC %s' % x_pc)
plt.ylabel('PC %s' % y_pc)
# legend = plt.legend(loc='upper center', shadow=True)
plt.savefig(save_file)
plt.show()
评论列表
文章目录