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

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

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

Abstract
true
HandleCompatible
true

Для получения информации об атрибутах класса см. раздел «Атрибуты класса».

Свойства

расширить все

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

Когда для этого свойства задано значение 'on', шкала палитры видна на графике.

Атрибуты:

GetAccess
public
SetAccess
public
Dependent
true
NonCopyable
true

Методы

расширить все

Примеры

свернуть все

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

Чтобы определить класс, создайте файл с именем SurfImagePlot.m который содержит следующий код. The 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