You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Matlab中用gscatter绘制t-SNE并为训练集与锚点设特定颜色

解决Matlab中gscatter绘制t-SNE结果无法区分训练集与锚点的问题

你的问题出在两个地方:一是数据拼接和拼写有误,二是gscatter没有收到分组标签,导致所有点被归为同一类,只用一种颜色显示。

修正步骤与代码示例

  1. 修正数据拼接与拼写:把xAnxhors改为正确的xAnchors,用[xtrain; xAnchors]拼接两个数据集作为t-SNE的输入。
  2. 创建分组标签:为训练集和锚点分别生成标识,比如训练集对应标签1,锚点对应标签2,或者用分类变量更直观。
  3. 指定分组调用gscatter:将分组标签作为第三个参数传入gscatter,还可以自定义颜色。

完整代码如下:

% 修正拼写与数据拼接
combined_data = [xtrain; xAnchors];
Y = tsne(combined_data);

% 创建分组标签:训练集为1,锚点为2
group_labels = [ones(size(xtrain, 1), 1); 2*ones(size(xAnchors, 1), 1)];

% 调用gscatter并指定颜色,比如训练集用蓝色,锚点用红色
gscatter(Y(:,1), Y(:,2), group_labels, 'br', 'xo');
legend('训练集', '锚点');
xlabel('t-SNE维度1');
ylabel('t-SNE维度2');
title('t-SNE结果可视化(区分训练集与锚点)');

代码说明

  • group_labels:长度和拼接后的数据行数一致,确保每个点都有对应的分组标识。
  • 'br':指定两组点的颜色分别为蓝色(b)和红色(r),你可以替换成其他Matlab支持的颜色代码(比如'gk'代表绿色和黑色)。
  • 'xo':指定两组点的标记分别为叉号(x)和圆圈(o),增强区分度。
  • 最后添加图例、坐标轴标签和标题,让图表更清晰。

内容的提问来源于stack exchange,提问作者user9010429

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 00:25:20