绘制矩阵并为每第3行定义LineStyle

时间:2015-12-15 09:09:59

标签: matlab plot matlab-figure linestyle

在我的代码中,我使用plot(x,y),其中x and y16x12矩阵。现在我想定义样式规则,例如'前两行应该是红色,然后是两行蓝色'或者'每第3行应该是LineStyle --' ....我想定义一个LineStyle and a Color-Array并用for-loop或类似的东西逐行绘制矩阵那,但我想知道是否有更优雅的方式来做它?

1 个答案:

答案 0 :(得分:4)

有一个LineStyleOrder轴属性。因此,将每个第三行设置为虚线可以这样做:

data = rand(9);
set(gca, 'LineStyleOrder','-|-|--'); %// note you can replace '-|-|--' with {'-','-','--'} if you prefer
hold on;
plot(data);

您可以使用ColorOrder属性对颜色执行相同操作,使前2行为红色,后2为蓝色(然后重复)为

set(gca, 'ColorOrder',[1 0 0; 1 0 0; 0 0 1;0 0 1]);

但是,如果你混合两者,它将只在每12行之后重复:

set(gca,'ColorOrder',[1 0 0; 1 0 0; 0 0 1;0 0 1],...
        'LineStyleOrder','-|-|--')

即。这将循环显示您ColorOrder中指定的LineStyleOrder <(对于每种线型,它会循环显示所有颜色),因此在这种情况下,前两行是纯红色,下两个是纯蓝色,接下来的两个是再次呈红色,接下来的两个再次是纯蓝色,然后第9行和第10行将是红色,第11和第12行将呈蓝色,然后重复此图案。

因此单独使用它们会起作用(只要确保将它与hold on结合使用即使你一次性绘制它)但是如果你想独立于线条样式循环颜色那么你将不得不循环。