[HTML] 구글 차트를 이용해서 “표준 vs. 실적[통계치]” 표시하기

구글 차트의 “간격 차트 유형“를 활용해서 “표준 vs 실적[최소값, 일사분위수, 중앙값, 삼사분위수, 최대값]”를 출력하는 그래프를 그려보도록 하겠습니다. 공정 관리를 위해 사용하면 좋습니다.
Interval Chart
아래 HTML 코드를 저장 후 실행하면 위 이미지와 같이 그래프가 출력됩니다. 한 가지 알아둬야 할 사항은 date 타입 자료를 입력할 때 new Date(년, 월, 일) 형식으로 입력해야 합니다. 그리고 월은 0부터 11까지 입력합니다. 즉 1월은 “0”, 2월은 “1”, 12월은 “11”을 입력해야 합니다. 그리고 date 타입의 X축을 적용하면 입력되지 않은 날짜도 표시해 줍니다(위 그래프의 1월22일, 2월3일, 2월4일).( 오라클 데이터베이스로부터 일사분위수와 삼사분위수를 산출하는 방법을 참고하세요.

<html>
<head>
  <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
  <script type="text/javascript">
    google.charts.load('current', {'packages':['corechart']});
    google.charts.setOnLoadCallback(drawChart);

    function drawChart() {
      var data = new google.visualization.DataTable();
      data.addColumn('date', 'x');
      data.addColumn('number', '표준');
      data.addColumn('number', '실적');
      data.addColumn({id:'i0', type:'number', role:'interval'});
      data.addColumn({id:'i1', type:'number', role:'interval'});
      data.addColumn({id:'i2', type:'number', role:'interval'});
      data.addColumn({id:'i3', type:'number', role:'interval'});
      data.addColumn({id:'i4', type:'number', role:'interval'});
    
      data.addRows([
         //일자, 표준, 실적평균, 최소값, 일사분위수, 중앙값, 삼사분위수, 최대값
        [new Date(2024, 0, 17), 21.957, 22.306, 22.256, 22.256, 22.256, 22.356, 22.406], 
        [new Date(2024, 0, 18), 21.957, 22.227, 21.955, 22.155, 22.256, 22.256, 22.456], 
        [new Date(2024, 0, 19), 21.957, 22.263, 22.005, 22.155, 22.256, 22.356, 22.456], 
        [new Date(2024, 0, 20), 21.957, 22.233, 21.744, 22.055, 22.256, 22.306, 22.757], 
        [new Date(2024, 0, 21), 21.957, 22.499, 21.855, 21.955, 22.556, 23.008, 23.409], 
        [new Date(2024, 0, 23), 21.957, 22.532, 22.256, 22.256, 22.506, 22.717, 23.008], 
        [new Date(2024, 0, 24), 21.957, 22.501, 22.256, 22.256, 22.406, 22.506, 22.837], 
        [new Date(2024, 0, 25), 21.957, 22.454, 22.256, 22.256, 22.356, 22.596, 22.607], 
        [new Date(2024, 0, 26), 21.957, 22.206, 22.055, 22.055, 22.155, 22.256, 22.356], 
        [new Date(2024, 0, 27), 21.957, 22.206, 22.055, 22.055, 22.155, 22.256, 22.356], 
        [new Date(2024, 0, 28), 21.957, 22.514, 22.256, 22.256, 22.356, 22.717, 22.727], 
        [new Date(2024, 0, 29), 21.957, 22.385, 22.155, 22.256, 22.356, 22.506, 22.757], 
        [new Date(2024, 0, 30), 21.957, 22.463, 21.975, 22.256, 22.406, 22.947, 22.947], 
        [new Date(2024, 0, 31), 21.957, 22.6, 22.356, 22.406, 22.456, 22.842, 22.917], 
        [new Date(2024, 1, 01), 21.957, 22.571, 22.256, 22.506, 22.556, 22.657, 22.907], 
        [new Date(2024, 1, 02), 21.957, 22.586, 22.256, 22.556, 22.556, 22.717, 22.807], 
        [new Date(2024, 1, 05), 21.957, 22.767, 22.506, 22.556, 22.687, 22.977, 23.208], 
        [new Date(2024, 1, 06), 21.957, 22.581, 22.256, 22.456, 22.627, 22.757, 22.807], 
        [new Date(2024, 1, 07), 21.957, 22.407, 22.206, 22.356, 22.406, 22.506, 22.566], 
        [new Date(2024, 1, 08), 21.957, 22.306, 21.955, 21.955, 22.356, 22.607, 22.607], 
      ]);
  
      var options = {
        title: '표준 vs 실적[최소값, 일사분위수, 중앙값, 삼사분위수, 최대값]',
        curveType:'function',
        lineWidth: 4,
        //X축의 날짜 출력 형식 변경
        //hAxis: { format: 'yy/M/d/' },
        series: [{'color': '#1A8763'}],
        intervals: { 'lineWidth':2, 'barWidth': 0.5, style: 'boxes' },
        legend: 'none',
        chartArea: {width: '90%', height: "90%"},
      };
  
      var chart = new google.visualization.LineChart(document.getElementById('chart_lines'));
      chart.draw(data, options);
      }
</script>
</head>
<body>
<div id="chart_lines" style="height: 100%; width:100%;"></div>
</body>
</html>

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다