【MATLAB】Waterfall도의 작성
개요
두 숫자의 차이를 시각화 할 때 자주 사용되는 Waterfall 다이어그램.
Excel에서도 2016부터 기본 기능으로 그릴 수 있습니다 (아래 그림).
MATLAB에서도 기본적으로 그릴 수 있다면 업무 자동화가 끝나는 것이라고 생각한다면,
함수를 공개해 주시는 분을 발견해 ( 참고문헌[1] ) , 참고로 해 주면서 자신 취향의 보기 좋게 했습니다.
본문
함수 호출
이런 식으로 숫자와 라벨을 던지면,
y=[10, 2, -3, -3, 5]; % 基点の値,要因A/B/C/Dによる変動,終点の値は省略
xlabel={'基点','要因A','要因B','要因C','要因D','終点'};
wfall(y,xlabel);
이런 식으로 그래프를 보여주는 함수 wfall
를 만들었습니다.
함수 wfall
포인트는 3점입니다.
함수 호출
이런 식으로 숫자와 라벨을 던지면,
y=[10, 2, -3, -3, 5]; % 基点の値,要因A/B/C/Dによる変動,終点の値は省略
xlabel={'基点','要因A','要因B','要因C','要因D','終点'};
wfall(y,xlabel);
이런 식으로 그래프를 보여주는 함수
wfall
를 만들었습니다.함수 wfall
포인트는 3점입니다.
BaseValue
에서 설정한다. ax(i)
를 설정한다. 그대로라면 마지막으로 그린 바 밖에 보이지 않기 때문에, 배경색 Color
를 none
로 설정한다. Colormap
& CLim
로 설정한다. CLim
의 0=기점과 종점=남색, 1=증가=녹색, -1=감소=적색으로 한다. function [] = wfall(y,xlabel)
%% 準備
n = length(y);
cumy = cumsum(y); % 累積和
c = sign(y); % 符号判定(バーの色に使う)
% 座標軸をn+1個作成
ax = gca;
for i = 2:n+1
ax(i) = copyobj(ax(1), ax(1).Parent);
end
%% グラフ描画
h = bar(ax(1), 1, cumy(1), 'CData', 0, 'BaseValue', 0);
hold on
for i = 2:n
h(i) = bar(ax(i), i, cumy(i), 'CData', c(i), 'BaseValue', cumy(i-1), 'ShowBaseLine', 'off'); % 要因バーの底辺をBaseValueで設定(ポイント①)
end
h(n+1) = bar(ax(n+1), n+1, cumy(n), 'CData', 0, 'BaseValue', 0);
hold off
%% グラフの見栄え設定
% 縦横サイズ
set(ax, 'XLim', [0, n+1]+0.5, 'YLim', [min(min(cumy), 0), max(max(cumy), 0)]);
% すべてのバーが見えるようにする(ポイント②)
set(ax(2:end), 'Color', 'none');
% 横軸縦軸の設定
for i = 1:n+1
set(ax(i),'XTickLabels',xlabel(i));
end
set(ax(2:end), 'YColor', 'none');
% バーの色設定(ポイント③)
clmap = [...
255,0,0;... % 赤 - colorcodeは-1
0,51,153;... % 紺
0,128,0]; % 緑
set(ax, 'CLim', [-1, 1], 'ColorMap', clmap/255);
% CDataプロパティの適用
set(h, 'FaceColor', 'flat')
% グリッド設定
set(ax,'XGrid','off');
set(ax,'GridLineStyle',':');
set(ax,'GridAlpha',0.1);
set(ax,'Layer','top');
end
참고문헌
이하의 사이트를 참고로 했습니다.
[1] stack overflow > Consulting waterfall chart matlab > Answer Method 1
h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 60685448 / 곤스 l 짱 g 와 r 푸 ㅁ l 짱 rt t t b
[2] MathWorks > 도움말 센터 > bar
htps // jp. 마 t 후 rks. 이 m/에 lp/마 tぁb/레 f/바 r. HTML
Reference
이 문제에 관하여(【MATLAB】Waterfall도의 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/moko_middo/items/5efd5aff130f7f75c68e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(【MATLAB】Waterfall도의 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/moko_middo/items/5efd5aff130f7f75c68e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)