Skip to main content
การใช้งาน ChartJs

การใช้งาน Chart JS สร้างรายงานในรูปแบบกราฟ

บทความนี้ทางเราจะขอแนะนำการใช้งาน ChartJs ซึ่งเป็น javascript library
สำหรับ สร้างรายงาน กราฟ ในรูปแบบ ต่าง ๆ  ตัว ChartJs นั้นเป็น OpenSource ครับ
ซึ่งสามารถใช้งานได้ฟรี เรามาดูวิธีการใช้งานเบื้องต้นกันเลยดีกว่าครับ

ไปที่   http://www.chartjs.org

chartjs

เริ่มต้นการใช้งาน เบื้องต้น

1.สร้าง Tag canvas กำหนดให้มี ไอดี เท่ากับ myChart

<canvas id="myChart" width="400" height="400"></canvas>

2. นำเข้า Script  Chart.js CDN

<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.js"></script>

3.ตัวอย่างการเรียกใช้งาน ChartJs ในรูปแบบ Bar chart

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	<title>ChartJs</title>

  </head>
  
  <body>
  
	<canvas id="myChart" width="400" height="400"></canvas>
	
	<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.js"></script>

	<script>
		var ctx = document.getElementById("myChart");
		var myChart = new Chart(ctx, {
			type: 'bar',
			data: {
				labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
				datasets: [{
					label: '# of Votes',
					data: [12, 19, 3, 5, 2, 3],
					backgroundColor: [
						'rgba(255, 99, 132, 0.2)',
						'rgba(54, 162, 235, 0.2)',
						'rgba(255, 206, 86, 0.2)',
						'rgba(75, 192, 192, 0.2)',
						'rgba(153, 102, 255, 0.2)',
						'rgba(255, 159, 64, 0.2)'
					],
					borderColor: [
						'rgba(255,99,132,1)',
						'rgba(54, 162, 235, 1)',
						'rgba(255, 206, 86, 1)',
						'rgba(75, 192, 192, 1)',
						'rgba(153, 102, 255, 1)',
						'rgba(255, 159, 64, 1)'
					],
					borderWidth: 1
				}]
			},
			options: {
				scales: {
					yAxes: [{
						ticks: {
							beginAtZero:true
						}
					}]
				}
			}
		});
		</script>	
	
	
  </body>
</html>

ตัวอย่างการแสดงผล

chartjs

เราสามารถ เปลี่ยนรูปแบบ การแสดงผลในรูปแบบอื่น ๆ ได้ ดังนี้

การแสดงผล แบบ Line Chart   แก้ไข Script การเรียกใช้งาน ChartJs
กำหนดค่า type : ‘line’

var ctx = document.getElementById("myChart");
		var myChart = new Chart(ctx, {
			type: 'line',
			data: {
                              /*code*/
			},
			options: {
                             /*code*/
			}
		});

ตัวอย่างการแสดงผล Line Chart

chartjs_linechart

การแสดงผล แบบ Pie Chart   แก้ไข Script การเรียกใช้งาน ChartJs
กำหนดค่า type : ‘pie’

var ctx = document.getElementById("myChart");
		var myChart = new Chart(ctx, {
			type: 'line',
			data: {
                              /*code*/
			},
			options: {
                             /*code*/
			}
		});

ตัวอย่างการแสดงผล Pie Chart

chartjs_piechart

สามารถดูตัวอย่างการตั้งค่า อื่น ๆ เพิ่มเติมที่  http://www.chartjs.org/docs/

ตัวอย่างการใช้งาน แสดงข้อมูลกราฟจากฐานข้อมูล MySQL

สร้าง ฐานข้อมูล Demo และ สร้างตาราง ชื่อ Chart

CREATE TABLE `chart` (
  `id` int(11) NOT NULL,
  `title` varchar(255) NOT NULL,
  `score` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `chart` (`id`, `title`, `score`) VALUES
(1, 'A', 5000),
(2, 'B', 3500),
(3, 'C', 2000),
(4, 'D', 4000);

ALTER TABLE `chart`
  ADD PRIMARY KEY (`id`);

สร้างไฟล์ index.php

<?php
	$servername = "localhost";
	$username = "root";
	$password = "";
	$dbname = "demo";
	$conn = mysqli_connect($servername, $username, $password, $dbname);

	if (!$conn) {
		die("Connection failed: " . mysqli_connect_error());
	}

	$sql = "SELECT * FROM chart";
	$result = mysqli_query($conn, $sql);

	if (mysqli_num_rows($result) > 0) {

		while($row = mysqli_fetch_assoc($result)) {
			
			$labels[] = $row['title'];
			
			$data[] = $row['score'];
		}
	}
	mysqli_close($conn);
?>

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
	<title>ChartJs</title>

  </head>
  
  <body>
	  

	<canvas id="myChart" width="400" height="200"></canvas>
	
	<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.js"></script>
	<script>
	var ctx = document.getElementById("myChart");
	var myChart = new Chart(ctx, {
		//type: 'bar',
		//type: 'line',
		type: 'pie',
		data: {
			labels: <?=json_encode($labels)?>,
			datasets: [{
				label: 'Report',
				data: <?=json_encode($data, JSON_NUMERIC_CHECK);?>,
				backgroundColor: [
					'rgba(255, 99, 132, 0.2)',
					'rgba(54, 162, 235, 0.2)',
					'rgba(255, 206, 86, 0.2)',
					'rgba(75, 192, 192, 0.2)',
					'rgba(153, 102, 255, 0.2)',
					'rgba(255, 159, 64, 0.2)'
				],
				borderColor: [
					'rgba(255,99,132,1)',
					'rgba(54, 162, 235, 1)',
					'rgba(255, 206, 86, 1)',
					'rgba(75, 192, 192, 1)',
					'rgba(153, 102, 255, 1)',
					'rgba(255, 159, 64, 1)'
				],
				borderWidth: 0
			}]
		},
		options: {
			scales: {
				yAxes: [{
					ticks: {
						beginAtZero:true
					}
				}]
			},
			 responsive: true,
			 title: {
				display: true,
				text: 'ตัวอย่างการใช้งาน Chart Js'
			}
		}
	});
	</script>
		
  </body>
</html>

ตัวอย่างการแสดงผล ChartJs

chartjs_database


Deprecated: Function create_function() is deprecated in /home/service1/domains/monkeywebstudio.com/public_html/wp-content/plugins/simple-lightbox/controller.php on line 1642