Matlab实现10类别数据集散点图差异化着色的最简方法问询
在Matlab中实现10类数据多色可视化的最简方法
问得好!给你分享个超省心的方案,比你手动逐个绘制类别高效太多啦!
Matlab自带的gscatter函数专门用来做分类散点图,一行代码就能搞定你10类数据的可视化需求——它会自动给不同类别分配差异化的颜色和标记,还能自动生成图例,完全不用你手动处理每个类别:
gscatter(data(:,1), data(:,2), labels);
参数说明很直观:
data(:,1):数据集的第一列(作为x轴数据)data(:,2):数据集的第二列(作为y轴数据)labels:你的10分类标签数组(1到10的整数)
如果想要更灵活的自定义(比如指定标记样式、颜色板),也可以结合循环和colormap实现:
% 生成10种区分度高的颜色,可选jet、hsv、parula等色板 colors = colormap(jet(10)); hold on; % 遍历每个类别 for class_idx = 1:10 % 筛选当前类别的数据 current_data = data(labels == class_idx, :); % 用对应颜色绘图,可自定义标记(比如*、o、s等) plot(current_data(:,1), current_data(:,2), '*', 'Color', colors(class_idx,:), ... 'DisplayName', ['Class ', num2str(class_idx)]); end hold off; legend; % 显示类别图例
但毫无疑问,gscatter是最简便的方案,完美适配你的10分类场景,省去了写循环和手动配置颜色的麻烦~
内容的提问来源于stack exchange,提问作者Forrest
相关产品推荐
相关产品推荐

