def plot_tsne(data, label, dataset_str):
print('Computing t-SNE embedding')
label = label.cpu()
data = data.cpu().detach().numpy()
tsne = TSNE(n_components=2, init='pca', random_state=0)
t0 = time()
result = tsne.fit_transform(data)
nb_classes = label.unique().max()+1
print("{} class number is {}".format(dataset_str,nb_classes))
t1 = time()
fig = plt.figure(figsize=(8, 8))
from matplotlib.ticker import NullFormatter
print("t-SNE: %.2g sec" % (t1 - t0)) # 算法用时
plt.axis('off') # 去坐标轴
ax = fig.add_subplot(1, 1, 1)
ax.tick_params(bottom=False, top=False, left=False, right=False) # 移除全部刻度
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.spines['left'].set_visible(False)
colors = [
'#ffc0cb', '#bada55', '#008080', '#420420', '#7fe5f0', '#065535', '#ffd700'
]
for i in range(nb_classes):
plt.scatter(result[label == i, 0], result[label == i, 1], s=20, color=colors[i])
ax.xaxis.set_major_formatter(NullFormatter()) # 设置标签显示格式为空
ax.yaxis.set_major_formatter(NullFormatter())
plt.show()
# plt.savefig('/media/user/2FD84FB396A78049/Yuzz/BIGCN_topic/plot_result/plot_tsne.png')
print("save done!")
其中颜色设置: 也可以不自己设定,可以通过plt自身封装的可视化色板,具体参考如下链接: blog.csdn.net/weixin_4363…
效果: