绘制矩阵并为每 3 行定义 LineStyle
Plotting matrices and defining a LineStyle for i.e. every 3rd line
在我的代码中,我使用 plot(x,y)
,其中 x and y
是 16x12
矩阵。现在我想定义样式规则,例如 'the first two lines should be red, then two lines blue' 或 'every 3rd line should be LineStyle --
'...我想定义一个 LineStyle and a Color-Array
并用 for-loop
或逐行绘制矩阵类似的东西,但我想知道是否有更优雅的方法来做到这一点?
有一个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
within 您的 LineStyleOrder
(即对于每种线条样式,它循环遍历所有颜色)所以在这种情况下,前两行是实心红色,下一个丝束是实心蓝色,接下来两个是实心红色,接下来两个是实心蓝色然后第 9 行和第 10 行将是红色虚线,第 11 行和第 12 行将是蓝色虚线,然后重复此模式。
所以单独使用它们会起作用(只要确保你将它与 hold on
结合使用,即使你一次性绘制所有内容)但是如果你想独立于线条样式循环使用颜色那么你将不得不循环。
在我的代码中,我使用 plot(x,y)
,其中 x and y
是 16x12
矩阵。现在我想定义样式规则,例如 'the first two lines should be red, then two lines blue' 或 'every 3rd line should be LineStyle --
'...我想定义一个 LineStyle and a Color-Array
并用 for-loop
或逐行绘制矩阵类似的东西,但我想知道是否有更优雅的方法来做到这一点?
有一个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
within 您的 LineStyleOrder
(即对于每种线条样式,它循环遍历所有颜色)所以在这种情况下,前两行是实心红色,下一个丝束是实心蓝色,接下来两个是实心红色,接下来两个是实心蓝色然后第 9 行和第 10 行将是红色虚线,第 11 行和第 12 行将是蓝色虚线,然后重复此模式。
所以单独使用它们会起作用(只要确保你将它与 hold on
结合使用,即使你一次性绘制所有内容)但是如果你想独立于线条样式循环使用颜色那么你将不得不循环。