Graphics    

プロットに使用するLineのカラーの定義

AxesのColorOrderプロパティは、関数plot、および、plot3で描かれる個々のLineのカラーを決定します。複数ラインのグラフの場合、これらの関数はColorOrderで定義されたカラーを順に使い、リストの最後に到達するとそのサイクルを繰り返します。

関数colordefは、異なるバックグランドカラーに対して種々のカラー順序の構成を定義します。colordefは、一般にmatlabrcファイルの中で呼び出され、MATLABの起動時に実行されます。

ユーザ独自のColorOrderの定義

ColorOrderはRGB値からなる任意のm行3列の行列となるように再定義することができます。ここで、mはカラーの数です。しかし、plotplot3などの高水準関数は、呼び出されるたびに(ColorOrderを含む)ほとんどのAxesのプロパティをそれらのデフォルトにリセットします。ユーザ独自のColorOrder定義を使用するためには、つぎのいずれかを実行しなければなりません。

デフォルトのColorOrderの変更   MATLABセッション中に作成される任意のFigure内のすべてのAxesに対して、MATLABが特定のFigure内で使用する新たなColorOrderを定義するか、MATLABが常に使用するユーザ定義のデフォルトとして新たなColorOrderを定義することができます。

カレントFigureのすべてのプロットに対するColorOrderを変更するには、そのFigureにデフォルトを設定します。たとえば、ColorOrderを赤、緑、青に設定するには、つぎのステートメントを使用します。

MATLABのセッション全体におけるすべてのプロットに対して、MATLABが使用する新たなColorOrderを定義するには、Rootレベルでデフォルトを設定し、任意のFigureに作成されるAxesがデフォルトを使用するようにします。

MATLABは、常に使うユーザのstartup.mファイルに前もって設定して、新しいColorOrderを定義することができます。

NextPlotプロパティの設定   AxesのNextPlotプロパティは高水準のグラフィックス関数が既存のAxesに描画する方法を決定します。このプロパティを用いると、plotplot3が呼び出されてもColorOrderプロパティをリセットされず、任意の既存のプロットのAxesを消去するようにすることができます。

デフォルトでは、NextPlotreplaceに設定されますが、これはcla resetコマンドと等価です(すなわち、すべてのAxesの子オブジェクトを削除し、Positionを除くすべてのプロパティをデフォルトにリセットします)。NextPlotreplacechildrenに設定すると、

MATLABはAxesの子オブジェクトを削除しますが、Axesのプロパティはリセットされません。これは、resetなしのclaコマンドと等価です。

NextPlotreplacechildrenに設定した後で、ColorOrderプロパティを再定義し、ColorOrderに影響を与えることなくplotplot3を呼び出すことができます。

NextPlotaddに設定することは、hold onコマンドを実行することと等価です。この設定によって、MATLABはColorOrderプロパティをリセットせず、プロット関数を呼び出してもAxesの子オブジェクトを消去しません("関数lineの使用方法"を参照してください)。

関数lineの使用方法   関数lineの挙動は、その呼出し書式に依存します。(明示的なプロパティ定義を含まない)正式でない形式を使用する場合、

lineColorOrderプロパティに従いますが、呼出し毎にAxesを消去したり、(plot3のように)表示を3次元に変更したりはしません。しかし、plot、または、plot3の自動的挙動は望まず、複数ラインのグラフに特定のColorOrderを使いたい場合、ユーザ独自のプロット関数を作成するのにlineは有効です。


 例 - Figure内の複数のカラーマップのシミュレーション プロットに使用するラインスタイル - LineStyleOrder