【MATLAB】Waterfall도의 작성

11954 단어 그래프matlab

개요



두 숫자의 차이를 시각화 할 때 자주 사용되는 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점입니다.
  • 요인 막대의 하단 위치는 bar 함수의 속성 BaseValue에서 설정한다.
  • 바 1개 1개에 직행 좌표축 ax(i) 를 설정한다. 그대로라면 마지막으로 그린 ​​바 밖에 보이지 않기 때문에, 배경색 Colornone 로 설정한다.
  • 바의 색은 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

    좋은 웹페이지 즐겨찾기