1

私のコードではplot(x,y)、 where x and yare16x12行列を使用しています。LineStyle --ここで、たとえば「最初の 2 行は赤、次に 2 行は青」または「3 行ごとに'.... を定義しLineStyle and a Color-Array、行列を 1 行ずつプロットする」などのスタイル ルールを定義したいと考えています。for-loopまたはそのようなものですが、もっとエレガントな方法があるかどうか疑問に思っていましたか?

4

1 に答える 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 に答える