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

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

Свойства

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

Видимость шкалы палитры, заданная как 'off' или 'on'. Когда это свойство установлено в '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 изменить палитру в cool.

c.Colormap = cool;

Введенный в R2019b