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 | ![]() |