wintertreey 님의 블로그
구글차트 구현하기 본문
뷰에서 다양한 라이브러리를 사용할 수있다.
구글차트를 그려보자.
구글차트를 위한 src
<script src="https://cdn.jsdelivr.net/npm/vue@3.2.31/dist/vue.global.prod.js"></script>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
보여줄 정보를 기입하고, 차트로 보여주기위한 포맷은 다음과 같다. 참고하자.
부트스트랩 사용
상단에 링크추가
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
<>태그에 class로 값 부여해주기
전체소스코드는 다음과 같다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://cdn.jsdelivr.net/npm/vue@3.2.31/dist/vue.global.prod.js"></script>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script src="https://unpkg.com/vue@3"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
<script>
let datas = [
['도시락', 3], ['김밥', 6], ['햄버거', 2], ['피자', 1], ['도넛', 8]
];
google.charts.load('current', {packages: ['corechart']});
google.charts.setOnLoadCallback(drawFunc);
function drawFunc(){
let data = google.visualization.arrayToDataTable([
['종류', '갯수'], ...datas
//2차원배열됨. // 0행['도시락', 3] 1행['김밥', 6] ..
]);
let options = {title:'먹고싶은 음식', is3D:true};
let chart = new google.visualization.PieChart(document.querySelector('#chart_div'));
chart.draw(data, options);
}
</script>
</head>
<body>
<h2>구글 차트(원 그래프) 그리기</h2>
메뉴선택 <br>
<div id="chart_div" style="height: 500px;"></div>
<div id="app" class="container mt-4">
<ul class="list-group">
<li v-for="(value, index) in dataArray" :key="index" class="list-group-item d-flex justify-content-between align-items-center">
{{value[0]}} : {{value[1]}}
<button class="btn btn-primary btn-sm me-2" @click="addOneFunc(index)">1 증가</button>
<button class="btn btn-secondary btn-sm" @click="subOneFunc(index)">1 감소</button>
</li>
</ul>
</div>
<script>
const {createApp} = Vue;
createApp({
data(){
return{
dataArray: datas
}
},
methods: {
addOneFunc(index){
this.dataArray[index][1]++;
this.updateChart();
},
subOneFunc(index){
if(this.dataArray[index][1] > 0){ //조건주기. 값을 0까지만 가능하도록.
this.dataArray[index][1]--;
this.updateChart();
}
},
updateChart(){
drawFunc();
}
},
}).mount('#app');
</script>
</body>
</html>
'프론트엔드 > Vue' 카테고리의 다른 글
Ajax로 json 정보 출력하기_ cors 정책 위반 에러. Spring 연동 (0) | 2024.08.07 |
---|---|
AJax로 json 자료 받아 출력하기. 다국어 프로그램. open api. (0) | 2024.08.07 |
Vue 연습_ IIFE (0) | 2024.08.06 |
Vue 이벤트처리 (0) | 2024.08.06 |
조건부, 반복 렌더링 _ v-if, v-for (0) | 2024.08.06 |