我使用以下matlab绘图来绘制多个点
plot(ydep, xvar, '.', 'Markersize', 3);
这里ydep和xvar是1024x300的矩阵,因此将有300条虚线以随机颜色绘制。我的问题是如何为参数中的300行指定颜色?我尝试使用循环来绘制每个'线',但这很慢
for n=1:300
plot(ydep(:, n), xvar(:, n), '.', 'Markersize', 3, 'color', linecolors(n, :));
hold on;
end
其中linecolors定义了每一行的颜色。
答案 0 :(得分:1)
如评论中所述,解决方案是设置ColorOrder
。然后你可以将它绘制成一个matlabs常规高性能的矩阵。
以下是如何设置ColorOrder
答案 1 :(得分:0)
我认为比使用ColorOrder更方便。该方法的概念是获取绘制线的句柄,然后使用set
命令。 Matlab提供的色彩映射可以缩放到您的数据集大小,这在这里非常方便。
我将按如下方式修改您的示例:
h = plot(ydep, xvar, '.', 'Markersize', 3);
set(h,{'color'},num2cell(cool(length(h)),2));
这将获取第一个代码行中所有虚线的句柄。然后我使用了色图cool
并将其缩放到与h中元素数相同的数字。但是,colormap(给出常规矩阵)不能直接在set
命令的参数中使用。指定多个属性值的一种方法是使用单元格数组,这就是这个例子的作用。
凯利科尔尼在Matlab Answers上给出了答案。