matlab.graphics.chartcontainer.mixin.Colorbar class

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

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

Описание

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

Используйте этот синтаксис, чтобы включить поддержку шкалы палитры вашего графика:

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 ложь). Значение '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