Graphics | ![]() ![]() |
概要
ShareColors
をon
に設定するとリソースを保存し、off
に設定すると迅速なカラーマップの変更を可能にします。
詳細
アクティブでないFigureも可視状態なので、正しくカラーリングして表示することが一般に望まれます。しかし、異なるカラーマップをもつ多数のFigureが同時に存在する場合、あるいは大きなカラーマップをもっている場合、コンピュータのカラーリソースは、すべてのFigureを正しくカラーリングして表示することはできない場合があります。ShareColors
がon
の場合、そのカラーがすでに存在していれば、Figureはシステムカラーテーブルのカラーを再定義しません。
カラーを共有することで、より効率的にリソースが利用されますが、この場合、MATLABは(たとえば、関数spinmap
のようには)カラーマップを迅速に変更することができません。これは、それらのカラーを定義するためのスロットを他のピクセルが指し示す場合、MATLABはシステムカラーテーブルのカラースロットの値を変更することができないからです。新しいカラーに対して、MATLABは別のスロットを探さなければなりません。カラースロットピクセルの割り当てを変更するには、変更しようとするカラーマップのFigureの再レンダリング(すなわち、カラーの値を再計算し、これらのカラーにピクセルを再度割り当てること)が必要になります。
Figureのカラーマップを迅速に変更したい場合、つぎのようにしてカラーの共有を無効にしてください。
set(fig_handle,'ShareColors','off')
新しいカラーマップは、Figureの再レンダリングを避けるためにオリジナルのカラーマップと同じサイズでなければならないことに注意してください。この技法の例についてはM-ファイルspinmap
を参照してください。
![]() | 多数のカラーの使用 | インデックス付きカラーシステム上でのトゥルーカラーのディザリング | ![]() |