在我的代码中,我使用plot(x,y)
,其中x and y
是16x12
矩阵。现在我想定义样式规则,例如'前两行应该是红色,然后是两行蓝色'或者'每第3行应该是LineStyle --
' ....我想定义一个LineStyle and a Color-Array
并用for-loop
或类似的东西逐行绘制矩阵那,但我想知道是否有更优雅的方式来做它?
答案 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
结合使用即使你一次性绘制它)但是如果你想独立于线条样式循环颜色那么你将不得不循环。