이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
사용자 지정 속성 표시를 갖는 chart 클래스
R2026a이 예제에서는 속성의 일부만 나열하는 사용자 지정 속성 표시를 갖는 차트의 클래스를 정의하는 방법을 보여줍니다. 다음 코드는 matlab.mixin.CustomDisplay 클래스의 getPropertyGroups 메서드를 오버로드하는 방법을 보여줍니다. 이 예제에서는 또한 matlab.graphics.chartcontainer.ChartContainer 기본 클래스에서 파생되는 차트에 대한 기본 코딩 패턴도 보여줍니다. 이 예제는 차트 개발의 코딩 기법을 익히는 데 사용하거나 개발하려는 클래스에 대한 기반으로 사용할 수 있습니다.
클래스를 정의하려면 다음 코드를 편집기에 복사하고 쓰기 가능한 폴더에 SmoothPlotCustomDisplay.m이라는 이름으로 저장하십시오.
classdef SmoothPlotCustomDisplay < matlab.graphics.chartcontainer.ChartContainer % c = SmoothPlotCustomDisplay('XData',X,'YData',Y,Name,Value,...) % plots a dotted line of the coordinates in X and Y with a smoothed % version of the line. You can also specify additonal name-value % arguments, such as 'SmoothColor' and 'SmoothWidth'. properties XData (1,:) double = NaN YData (1,:) double = NaN SmoothColor {validatecolor} = [0.9290 0.6940 0.1250] SmoothWidth (1,1) double = 2 end properties(Access = private,Transient,NonCopyable) OriginalLine (1,1) matlab.graphics.chart.primitive.Line SmoothLine (1,1) matlab.graphics.chart.primitive.Line end methods(Access = protected) function setup(obj) % Get the axes ax = getAxes(obj); % Create the original and smooth lines obj.OriginalLine = plot(ax,NaN,NaN,'LineStyle',':'); hold(ax,'on') obj.SmoothLine = plot(ax,NaN,NaN,'LineStyle','-',... 'Color',[0.9290 0.6940 0.1250],'LineWidth',2); hold(ax,'off') end function update(obj) % Update line data obj.OriginalLine.XData = obj.XData; obj.OriginalLine.YData = obj.YData; obj.SmoothLine.XData = obj.XData; obj.SmoothLine.YData = createSmoothData(obj); % Update line color and width obj.SmoothLine.Color = obj.SmoothColor; obj.SmoothLine.LineWidth = obj.SmoothWidth; end function propgrp = getPropertyGroups(obj) if ~isscalar(obj) % List for array of objects propgrp = getPropertyGroups@matlab.mixin.CustomDisplay(obj); else % List for scalar object propList = {'SmoothColor','XData','YData'}; propgrp = matlab.mixin.util.PropertyGroup(propList); end end function sm = createSmoothData(obj) % Calculate smoothed data v = ones(1,10)*0.1; sm = conv(obj.YData,v,'same'); end end end
클래스 파일을 저장하고 나면 차트의 인스턴스를 만들 수 있습니다. 차트를 만들 때 세미콜론을 생략하여 사용자 지정된 표시를 확인합니다.
x = 1:1:100; y = 10*sin(x/15)+8*sin(10*x+0.5); c = SmoothPlotCustomDisplay('XData',x,'YData',y)
c =
SmoothPlotCustomDisplay with properties:
SmoothColor: [0.9290 0.6940 0.1250]
XData: [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 … ] (1×100 double)
YData: [-6.3714 9.3040 -4.3583 5.3084 5.1309 … ] (1×100 double)
Use GET to show all properties
