[HTML] 구글 차트를 이용해서 “표준 vs. 실적[통계치]” 표시하기
구글 차트의 “간격 차트 유형“를 활용해서 “표준 vs 실적[최소값, 일사분위수, 중앙값, 삼사분위수, 최대값]”를 출력하는 그래프를 그려보도록 하겠습니다. 공정 관리를 위해 사용하면 좋습니다.
아래 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>