1

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

4

1 回答 1

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即使你一次性绘制它)但是如果你想独立于线条样式循环颜色,那么你将不得不循环。

于 2015-12-15T09:27:48.997 回答