| Graphics | ![]() |
AxesのColorOrderプロパティは、関数plot、および、plot3で描かれる個々のLineのカラーを決定します。複数ラインのグラフの場合、これらの関数はColorOrderで定義されたカラーを順に使い、リストの最後に到達するとそのサイクルを繰り返します。
関数colordefは、異なるバックグランドカラーに対して種々のカラー順序の構成を定義します。colordefは、一般にmatlabrcファイルの中で呼び出され、MATLABの起動時に実行されます。
ユーザ独自のColorOrderの定義
ColorOrderはRGB値からなる任意のm行3列の行列となるように再定義することができます。ここで、mはカラーの数です。しかし、plotやplot3などの高水準関数は、呼び出されるたびに(ColorOrderを含む)ほとんどのAxesのプロパティをそれらのデフォルトにリセットします。ユーザ独自のColorOrder定義を使用するためには、つぎのいずれかを実行しなければなりません。
ColorOrderを定義するNextPlotプロパティを、add、または、replacechildrenに変更するlineの正式でない形式を使用する。これは、ColorOrderには従いますが、Axesを消去したり、プロパティのリセットを行ったりしません。デフォルトのColorOrderの変更 MATLABセッション中に作成される任意のFigure内のすべてのAxesに対して、MATLABが特定のFigure内で使用する新たなColorOrderを定義するか、MATLABが常に使用するユーザ定義のデフォルトとして新たなColorOrderを定義することができます。
カレントFigureのすべてのプロットに対するColorOrderを変更するには、そのFigureにデフォルトを設定します。たとえば、ColorOrderを赤、緑、青に設定するには、つぎのステートメントを使用します。
set(gcf,'DefaultAxesColorOrder',[1 0 0;0 1 0;0 0 1])
MATLABのセッション全体におけるすべてのプロットに対して、MATLABが使用する新たなColorOrderを定義するには、Rootレベルでデフォルトを設定し、任意のFigureに作成されるAxesがデフォルトを使用するようにします。
set(0,'DefaultAxesColorOrder',[1 0 0;0 1 0;0 0 1])
MATLABは、常に使うユーザのstartup.mファイルに前もって設定して、新しいColorOrderを定義することができます。
NextPlotプロパティの設定 AxesのNextPlotプロパティは高水準のグラフィックス関数が既存のAxesに描画する方法を決定します。このプロパティを用いると、plotやplot3が呼び出されてもColorOrderプロパティをリセットされず、任意の既存のプロットのAxesを消去するようにすることができます。
デフォルトでは、NextPlotはreplaceに設定されますが、これはcla resetコマンドと等価です(すなわち、すべてのAxesの子オブジェクトを削除し、Positionを除くすべてのプロパティをデフォルトにリセットします)。NextPlotをreplacechildrenに設定すると、
set(gca,'NextPlot','replacechildren')
MATLABはAxesの子オブジェクトを削除しますが、Axesのプロパティはリセットされません。これは、resetなしのclaコマンドと等価です。
NextPlotをreplacechildrenに設定した後で、ColorOrderプロパティを再定義し、ColorOrderに影響を与えることなくplotとplot3を呼び出すことができます。
NextPlotをaddに設定することは、hold onコマンドを実行することと等価です。この設定によって、MATLABはColorOrderプロパティをリセットせず、プロット関数を呼び出してもAxesの子オブジェクトを消去しません("関数lineの使用方法"を参照してください)。
関数lineの使用方法 関数lineの挙動は、その呼出し書式に依存します。(明示的なプロパティ定義を含まない)正式でない形式を使用する場合、
line(x,y,z)
lineはColorOrderプロパティに従いますが、呼出し毎にAxesを消去したり、(plot3のように)表示を3次元に変更したりはしません。しかし、plot、または、plot3の自動的挙動は望まず、複数ラインのグラフに特定のColorOrderを使いたい場合、ユーザ独自のプロット関数を作成するのにlineは有効です。
| 例 - Figure内の複数のカラーマップのシミュレーション | プロットに使用するラインスタイル - LineStyleOrder | ![]() |