首页 > 解决方案 > 为什么不是所有标签都显示在 matplotlib 图例中?

问题描述

我正在尝试使用 t-sne 方法在二维空间中可视化具有 20 个类的数据集的特征嵌入,但我的 matplotlib 图例缺少大部分标签。它应该显示 y 中的所有标签,但只显示前 7 个标签。我在这里缺少什么?

这是我的代码:


tsne_model = TSNE(n_iter=2000, n_components=2, random_state=123, perplexity=50)
tsne_transformed = tsne_model.fit_transform(pca_result_50)

sns.set_style('white')
f = plt.figure(figsize=(8, 8))
ax = plt.subplot(aspect='equal')
sc = plt.scatter(tsne_transformed[:, 0], tsne_transformed[:, 1], c=labels, cmap='tab20')
handles, _ = sc.legend_elements(prop='colors')

y = ['0 - Original', '1 - Original', '2 - Original', '3 - Original', '4 - Original', '5 - Original', 
'6 - Original', '7 - Original', '8 - Original', '9 - Original','0 - Generated', '1 - Generated', 
'2 - Generated', '3 - Generated', '4 - Generated', '5 - Generated', 
'6 - Generated', '7 - Generated', '8 - Generated', '9 - Generated']

plt.legend(handles, y, loc='best')

plt.xlabel('t-sne 1')
plt.ylabel('t-sne 2')

plt.xlim(-25, 25)
plt.ylim(-25, 25)
ax.axis('tight')


标签: pythonmatplotlib

解决方案


推荐阅读