exponenta event banner

matlab.graphics.chartcontainer.mixin.Colorbar класс

Пакет: matlab.graphics.chartcontainer.mixin

Добавить поддержку colorbar в подкласс контейнера диаграммы

Описание

matlab.graphics.chartcontainer.mixin.Colorbar является классом для добавления диаграмм поддержки colorbar, которые наследуют от matlab.graphics.chartcontainer.ChartContainer. Унаследовав от этого класса, можно отобразить панель цветов в диаграмме. Пользователи могут выбрать опции в строке меню фигуры или панели инструментов фигуры, чтобы показать или скрыть эту панель цветов.

Используйте следующий синтаксис, чтобы включить поддержку colorbar для диаграммы:

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

matlab.graphics.chartcontainer.mixin.Colorbar класс является handle класс.

Атрибуты класса

Abstract
true
HandleCompatible
true

Сведения об атрибутах класса см. в разделе Атрибуты класса.

Свойства

развернуть все

Видимость панели цветов, заданная как 'on' или 'off'или как числовое или логическое 1 (true) или 0 (false). Значение 'on' эквивалентно true, и 'off' эквивалентно false. Таким образом, можно использовать значение этого свойства в качестве логического значения. Значение сохраняется как логическое значение типа вкл/выкл matlab.lang.OnOffSwitchState.

Если для этого свойства установлено значение 'on', панель цветов отображается на диаграмме.

Атрибуты:

GetAccess
public
SetAccess
public
Dependent
true
NonCopyable
true

Методы

развернуть все

Примеры

свернуть все

Определение класса с именем SurfImagePlot которая отображает поверхность с изображением под ней.

Чтобы определить класс, создайте файл с именем SurfImagePlot.m который содержит следующий код. setup метод для этого класса выполняет следующие задачи:

  • Создает Surface со смещением на ZData для обеспечения достаточного пространства для отображения изображения

  • Создает 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 поверхности. График Z путем вызова SurfImagePlot метод конструктора, который обеспечивается ChartContainer класс. Укажите '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.7608 0.8150]
       Units: 'normalized'

  Use GET to show all properties

Использовать c чтобы изменить карту цветов на cool.

c.Colormap = cool;

Представлен в R2019b