Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

matlab.graphics.chartcontainer.mixin.Colorbar クラス

パッケージ: matlab.graphics.chartcontainer.mixin

チャート コンテナー サブクラスにカラー バー サポートを追加

説明

matlab.graphics.chartcontainer.mixin.Colorbar は、matlab.graphics.chartcontainer.ChartContainer から継承するチャートにカラー バー サポートを追加するためのクラスです。このクラスから継承することにより、チャートにカラー バーを表示できます。ユーザーは、Figure のメニュー バーまたは Figure のツール バーのオプションによって、そのカラー バーを表示または非表示を選択できます。

チャートのカラー バー サポートを有効にするには、次の構文を使用します。

classdef MyChart < matlab.graphics.chartcontainer.ChartContainer & ...
                   matlab.graphics.chartcontainer.mixin.Colorbar
  ...
end

matlab.graphics.chartcontainer.mixin.Colorbar クラスは handle クラスです。

クラスの属性

抽象型
true
HandleCompatible
true

クラス属性の詳細については、クラスの属性を参照してください。

プロパティ

すべて展開する

カラー バーの可視性。'on' または 'off' もしくは数値または logical 1 (true) または 0 (false) として指定します。'on' の値は true と等価であり、'off'false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は matlab.lang.OnOffSwitchState 型の on/off logical 値として格納されます。

このプロパティが 'on' に設定されている場合、カラー バーはチャートに表示されます。

属性:

GetAccess
public
SetAccess
public
Dependent
true
NonCopyable
true

メソッド

すべて展開する

すべて折りたたむ

下方にイメージを伴った表面を表示する、SurfImagePlot というクラスを定義します。

このクラスを定義するには、以下のコードを含む SurfImagePlot.m という名前のファイルを作成します。このクラスの setup メソッドは以下のタスクを実行します。

  • イメージの表示に十分なスペースを提供する ZData でのオフセットをもつ Surface オブジェクトを作成

  • Image オブジェクトを作成

  • 座標軸を構成

  • ColorbarVisible プロパティを 'on' に設定することにより、カラー バーを表示

classdef SurfImagePlot < matlab.graphics.chartcontainer.ChartContainer & ...
        matlab.graphics.chartcontainer.mixin.Colorbar
    
    properties
        ZData (:,:) double = []
        Offset (1,1) double = 10
        Colormap (:,3) double {mustBeGreaterThanOrEqual(Colormap,0),...
            mustBeLessThanOrEqual(Colormap,1)} = parula
    end
    properties(Access = private,Transient,NonCopyable)
        Surface (1,1) matlab.graphics.chart.primitive.Surface
        Image (1,1) matlab.graphics.primitive.Image
    end
    
    methods(Access = protected)
        function setup(obj)
            % Get the axes
            ax = getAxes(obj);
            
            % Create surface and image objects
            obj.Surface = surf(ax,[],[],[]);
            hold(ax,'on')
            obj.Image = imagesc(ax,[]);
            
            % Configure axes, make colorbar visible
            view(ax,3)
            axis(ax,'tight')
            grid(ax,'on')
            obj.ColorbarVisible = 'on';
            hold(ax,'off')
        end
        function update(obj)
            % Update Data and Colormap
            ax = getAxes(obj);
            [r,c] = size(obj.ZData);
            [X,Y] = meshgrid(1:c,1:r);
            obj.Surface.XData = X;
            obj.Surface.YData = Y;
            obj.Surface.ZData = obj.ZData + obj.Offset;
            obj.Image.CData = obj.ZData;
            colormap(ax,obj.Colormap)
        end
    end
end

次に、表面の z 座標として行列 Z を定義します。ChartContainer クラスによって提供される SurfImagePlot コンストラクター メソッドを呼び出すことにより、Z をプロットします。名前と値のペアの引数 'ZData' を指定して、オブジェクトを c として返します。

[X,Y] = meshgrid(-10:1:10);
Z = X.^2 + Y.^2;
c = SurfImagePlot('ZData',Z)
c = 

  SurfImagePlot with properties:

       ZData: [21x21 double]
      Offset: 10
    Colormap: [256x3 double]
    Position: [0.1300 0.1100 0.6798 0.8150]
       Units: 'normalized'

  Use GET to show all properties

c を使用してカラーマップを cool に変更します。

c.Colormap = cool;

R2019b で導入