구글 차트 만들어보기
잠든여우
2022. 8. 14. 23:02
 URL 복사

안녕하세요 요즘 통계 부분 개발을 맡아서 하고 있고

차트 라이브러리는 구글 차트를 이용하여 개발하고 있습니다.

 

이 글에서는 중점적으로 다룰 내용은 제가 통계 부분을 개발하면서 알게 된 점,

느낀 점과 간단한 예제를 다뤄보겠습니다.

 

구글 차트에는 여러 가지 차트를 제공해 주고 있는데요.

여러 가지 차트 중에 파이 차트(Pie Chart)를 다뤄볼게요.

 

사실 사이트에 보면 바로 사용할 수 있도록

예제 코드가 많이 있으니 참고하면 좋을 것 같아요.

https://developers.google.com/chart

 

그럼 예제 코드를 살펴볼게요.

<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() {
        /* 2차원 배열로 만들어서 데이터를 넣어도 됩니다. (아래 주석처리된부분) */
        // var data = google.visualization.arrayToDataTable(data);
        var data = google.visualization.arrayToDataTable([
          ['Task', 'Hours per Day'],
          ['Work',     11],
          ['Eat',      2],
          ['Commute',  2],
          ['Watch TV', 2],
          ['Sleep',    7]
        ]);
        // 'titlt'뿐만 아니라 더 많은 option이 있습니다.
        // 저는 여기서 엄청 고생을했습니다.
        var options = {
          title: 'My Daily Activities'
        };

        /* 
            차트가 그려질 요소에 id값을 정확하게 적어주세요
            HTML에서 유일한 요소에 차트가 그려져야 되니깐 id로 지정하는게 좋아요
        */
        var chart = new google.visualization.PieChart(document.getElementById('piechart'));
        chart.draw(data, options);
      }
    </script>
  </head>
  <body>
    <div id="piechart" style="width: 900px; height: 500px;"></div>
  </body>
</html>

https://jsfiddle.net/api/post/library/pure/

 

위 예제는 구글 차트 사이트에서 제공하는 예제입니다.

option에 들어갈 내용들은 나중에 정리해서 올리도록 하겠습니다.

 

위에 링크를 통해서 실행을 시키면 아래에 사진처럼 차트가 예쁘게 그려집니다.

Pie Chart

나중에 설명하겠지만 차트에 보이는 모든 건 option에서 컨트롤할 수 있어요.

간단하게 오른쪽에 있는 범례를 왼쪽으로 보내려면 legend: 'right'를 추가해 주면 됩니다.

legend에 값은 'bottom', 'labeled', 'left', 'none', 'right', 'top'

legend.position bottom 범례의 위치가 차트 아래쪽으로 배치됩니다.
labeled 조각 데이터 값에 연결하는 선을 그립니다.
left 범례의 위치가 차트 왼쪽으로 배치됩니다.
none 범례가 보이지 않습니다.
right 범례의 위치가 차트 오른쪽에 배치됩니다.
top 범례의 위치가 차트 위쪽에 배치됩니다.

정석으로 범례의 위치를 지정하면 legend: {position: 'right'} 이렇게 작성하면 되고

legend: {position: 'labeled'} 설명은 조금 생소할 수 있어요.

legend: {position: 'labeled'}

위에 사진처럼 각 조각에 연결되는 선이 그려지고, 이것도 css나 js로 충분히 제어가 가능합니다.

(역시 갓 Stack Overflow)

 

제가 구글 차트를 이용하여 개발하면서 느낀 점이 여기서 나옵니다.

구글 차트 옵션을 잘만 사용하면 원하는 차트를 쉽게 그릴 수 있겠다.

라는 생각을 하게 되었습니다.

 

* 구글 차트를 그릴 때 그려질 요소가 완전히 그려지고 그려야 예제에 보이는 예쁜 차트가 그려집니다.

(차트를 그릴 때 요소가 그려지지 않은 상태이면 한쪽이 찌그러진 파이를 볼 수 있습니다..)

+ Recent posts