본문 바로가기

FrontEnd/java script

[java script] Vue.js의 구글 차트란?

728x90

◎ Vue.js에서 구글 차트 연동

 

아래의 문구를 작성하면 차트를 연동할 수 있습니다.

 

    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

 

google 차트는 움직이지 않는 그래프만 표시할 수 있습니다. 

여기서 Vue.js를 연동하면 유저가 조작하면 움직이는 그래프를 만들 수 있습니다.

 

 

◎ google chart를 사용하는 예제

 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Vue.js sample</title>
		<link rel="stylesheet" href="style.css" >
		<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
	</head>

   <body>
		<h2>Google Charts로 원그래프를 그리는 예제</h2>
		<h3>선호하는 점심 메뉴 투표</h3>
		<div id="chart_div" style="height: 500px;"></div>

		<script>
			// 그래프에 사용할 데이터
			 var orgdata = [
				['종류', '개수'],
				['도시락', 3], ['갈비탕', 4], [ '오므라이스', 5],
				['짬뽕', 1], ['비빔밥', 3], [ '메밀소바', 1]
			 ];
	
			google.charts.load('current', {packages: ['corechart']});
			google.charts.setOnLoadCallback(drawBasic);
	
			// 그래프를 그리는 함수
			function drawBasic() {
				var data = google.visualization.arrayToDataTable(orgdata);
				var options = {title: '선호하는 점심',"is3D": true};
				var chart = new google.visualization.PieChart(
					document.getElementById('chart_div'));
				chart.draw(data, options);
			}
		</script>
	</body>
</html>
구글 차트를 연동하면 아래와 같은 차트가 나타나게 됩니다.
차트별로 적용가능한 배열이 있고 값이 맞지 않으면 출력이 되지 않습니다.
위의 자바스크립트 부분이 전부 chart의 코드고 google charts로 들어가면 확인하실 수 있습니다.

Google 차트 사용  |  Charts  |  Google Developers

 

Google 차트 사용  |  Charts  |  Google Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 의견 보내기 Google 차트 사용 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Google 차트는

developers.google.com

 

위의 코드에 Vue.js를 연동시켜 주기위해서는 아래의 코드를 추가합니다.

 

  <script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>

  <script>
    new Vue({
      el:'#app',
      data:{
        dataArray: orgdata
      }
    })
  </script>

 

그러면 아래와 같은 출력이 나타납니다.

 

 

여기서 버튼을 누르면 숫자가 증가 또는 감소하며 그래프에 반영해보는 코드를 추가 하겠습니다.

 

	<div id="app">
		<li v-for="(item, c) in dataArray" v-if="c>0">{{ item[0] }} : {{ item[1] }}
			<button v-on:click="addOne(c)">한표</button>
			<button v-on:click="subOne(c)">감표</button>
		</li>
	</div>
    
    	<script>
		new Vue({
			el:'#app',
			data:{
				dataArray: orgdata
			},
			methods:{
				addOne: function(val){
					var obj = this.dataArray[val];
					obj[1]++;
					this.dataArray.splice(val, 1, obj);
					drawBasic();
				},
				subOne: function(val){
					var obj = this.dataArray[val];
					obj[1]--;
					this.dataArray.splice(val, 1, obj);
					drawBasic();
				}
			}
		})
	</script>

 

위와 같이 변경된 결과를 출력할 수 있습니다.

addOne: function(val){
	var obj = this.dataArray[val];
	obj[1]++;
	this.dataArray.splice(val, 1, obj);
	drawBasic();
}


위의 코드를 분석해 보겠습니다.
1. obj 변수에 dataArray를 하나씩 받아줍니다. 
  ▷ ['종류', '개수']
   ['도시락', 3]
  ▷위와 같이 배열을 받습니다.

2. 그 후 obj[1]을 통해 개수(2열)부분만 변동되도록 코드를 입력합니다.
3. splice를 통해 해당 값을 삭제하고 증가한 값이 입력되도록 합니다.
4. 그래프에 적용합니다.

 

 

막대로 변경하고 싶다면 아래의 코드를 참고하세요.

 

	<script>
		var orgdata = [['종류', '개수', {role : 'style'}],['도시락', 3, 'color: gray'],
        ['갈비탕', 4, 'color: red'],['오므라이스', 5, 'color: blue'],['짬뽕', 1, 'color: gray'],
        ['비빔밥', 3, 'color: gray'],['메밀소바', 1, 'color: gray']];

		google.charts.load('current', {packages:['corechart']});
		google.charts.setOnLoadCallback(drawBasic);

		function drawBasic(){
			var data = google.visualization.arrayToDataTable(orgdata);
			var options = {
				title: '선호하는 점심', "is3D": true,
        width: 600,
        height: 400,
        bar: {groupWidth: "95%"},
        legend: { position: "none" },
			};
			var chart = new google.visualization.BarChart(
				document.getElementById('chart_div'));
				chart.draw(data, options);
		}
	</script>

 

위의 코드와 같이 Piechart → Barchart로 변경하고 orgdata 배열에 색을 입히면 됩니다.

 

 

 

이번 시간에는 구글 차트를 이용한 예제를 해보았습니다. 변수를 그대로 적용하면 실행되지 않는 경우가 많습니다. 따라서 구글 차트의 코드를 확인하시고 변수는 잘 찾아서 변경해 적용하시면 됩니다.

 

지금 생각으로는 자주 사용하지는 않을 것 같아요!!

 

많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~

 

 

 

728x90