私のコードではplot(x,y)
、 where x and y
are16x12
行列を使用しています。LineStyle --
ここで、たとえば「最初の 2 行は赤、次に 2 行は青」または「3 行ごとに'.... を定義しLineStyle and a Color-Array
、行列を 1 行ずつプロットする」などのスタイル ルールを定義したいと考えています。for-loop
またはそのようなものですが、もっとエレガントな方法があるかどうか疑問に思っていましたか?
1 に答える
4
LineStyleOrder
軸プロパティがあります。したがって、3 行おきに破線を設定するには、次のようにします。
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]);
ただし、2 つを混在させると、12 行ごとにのみ繰り返されます。
set(gca,'ColorOrder',[1 0 0; 1 0 0; 0 0 1;0 0 1],...
'LineStyleOrder','-|-|--')
つまり、これは指定されたColorOrder
範囲内で循環しますLineStyleOrder
(つまり、線のスタイルごとに、すべての色を循環します)。この場合、最初の 2 本の線は実線の赤、次の 2 本の線は実線の青、次の 2 本は実線の赤です。次の 2 つは再び青の実線になり、9 行目と 10 行目は赤の破線になり、11 行目と 12 行目は青の破線になり、このパターンが繰り返されます。
したがって、それらを個別に使用しても機能します(一度にすべてをプロットしている場合でも、これを組み合わせて使用するようにしてhold on
ください)が、線のスタイルとは無関係に色を循環させたい場合は、ループする必要があります.
于 2015-12-15T09:27:48.997 に答える