是否可以在matlab(2D)中进行散射,其中标记的颜色以第三列为条件。我可以使用循环并保持但也许有一种更简单的方法。
基督教
答案 0 :(得分:5)
散射的第四个参数允许您指定颜色。来自the documentation:
散射(X,Y,S,C)
...
C确定每个标记的颜色。当C是与X和Y长度相同的矢量时,C中的值线性映射到当前色彩映射中的颜色。当C是1乘3矩阵时,它将标记的颜色指定为RGB值。如果散点图中有3个点并希望将颜色作为色彩图的索引,则C应为3×1矩阵。 C也可以是颜色字符串(有关颜色字符串说明符列表,请参阅ColorSpec)。
尝试类似:
X = rand(1, 10);
Y = rand(1, 10);
colour = randi(3, 1, 10)
colour =
2 1 3 1 3 1 2 2 3 1
scatter(X, Y, [], colour, 'filled');
如果您的数据集很大,并且几乎没有不同的颜色类别,我倾向于发现使用plot并使用hold是更快的绘图方式。
答案 1 :(得分:2)
@ Bill的答案很好,但是如果您有权访问Statistics Toolbox,您也可以尝试gscatter
。