การสร้าง Dashboard โดยใช้ Chart.js ใน Next.js: จากโปรแกรมสำเร็จรูปสู่การพัฒนาเว็บไซต์ 

การสร้าง Dashboard โดยใช้ Chart.js ใน Next.js: จากโปรแกรมสำเร็จรูปสู่การพัฒนาเว็บไซต์ 

24 ธันวาคม 2567

การสร้างแดชบอร์ด (dashboard) เพื่อแสดงข้อมูลในรูปแบบที่เข้าใจง่ายและมีประสิทธิภาพถือเป็นสิ่งสำคัญในยุคดิจิทัลปัจจุบัน ไม่ว่าจะเป็นการใช้งานในธุรกิจ การศึกษา หรือการวิเคราะห์ข้อมูล ในปัจจุบันมีเครื่องมือมากมายที่สามารถสร้างแดชบอร์ดได้อย่างรวดเร็ว เช่น Tableau และ Power BI ซึ่งเป็นโปรแกรมสำเร็จรูปที่มีเครื่องมือและฟังก์ชันการทำงานที่หลากหลาย ช่วยให้ผู้ใช้งานสามารถสร้าง แดชบอร์ด ได้โดยไม่ต้องมีทักษะการเขียนโปรแกรม 

อย่างไรก็ตามการสร้างแดชบอร์ดบนเว็บไซต์โดยใช้ JavaScript libraries เช่น Chart.js ใน Next.js ถือเป็นทางเลือกที่มีความยืดหยุ่นและสามารถปรับแต่งได้อย่างเต็มที่ ซึ่งเป็นการเปิดโอกาสให้ผู้พัฒนาสามารถสร้างแดชบอร์ด ที่ตอบโจทย์เฉพาะของตนเองได้มากยิ่งขึ้น 

Chart.js คืออะไร 

Chart.js เป็น JavaScript library ที่ช่วยให้นักพัฒนาสามารถสร้างกราฟและแผนภูมิในเว็บไซต์ได้อย่างง่ายดาย โดยไม่จำเป็นต้องมีความรู้ด้านการเขียนโค้ดที่ซับซ้อน นอกจากนี้ยังมีคุณสมบัติที่ยืดหยุ่นและปรับแต่งได้ตามความต้องการของผู้ใช้งาน Chart.js รอบรับการสร้างกราฟหลากหลายประเภท เช่น กราฟแท่ง กราฟเส้น กราฟวงกลม กราฟเรดาร์เป็นต้น อีกทั้ง Chart.js ยังมีขนาดเล็กและง่ายต่อการใช้งาน ทำให้เป็นตัวเลือกที่ดีสำหรับการสร้างแดชบอร์ดที่มีประสิทธิภาพ 

การใช้งาน Chart.js 

Chart.js สามารถติดตั้งได้ผ่าน Node Package Manager (npm) หรือ Content Delivery Network (CDN) ก็ได้ หลังจากติดตั้งเรียบร้อยแล้ว การสร้างกราฟจะสร้างผ่านตัวแปรและนำตัวแปรนั้นไปแสดงผลบนเว็บไซต์ในตำแหน่งที่ต้องการ 

ด้านบนเป็นการแสดงตัวอย่างการสร้างกราฟเส้น โดยหลัก ๆ แล้วการสร้างกราฟจะถูกแบ่งเป็น 2 ส่วนคือ ส่วนของข้อมูลและส่วนขององค์ประกอบอื่น ๆ ของกราฟ (option) ในส่วนของข้อมูลนั้นจะเป็นชื่อแกน ตัวเลขที่แสดงในกราฟ สีของกราฟเป็นต้น จากที่แสดงในตัวอย่างค่าของแกนนอน (x) จะเป็นชื่อเดือนตั้งแต่เดือน มกราคม ถึง กรกฎาคม จากตัวแปรที่ชื่อ “labels” ชื่อชุดข้อมูล จำนวนและองค์ประกอบต่าง ๆ ของเส้นกราฟสำหรับข้อมูลนั้นจะอยู่ในตัวแปรที่ชื่อว่า “datasets” ทั้งนี้ถ้าหากมีชุดข้อมูลมากกว่า 1 ชุดก็สามารถเพิ่มในส่วนนี้ได้เลย 

ในด้านองค์ประกอบอื่น ๆ ก็จะเกี่ยวกับการปรับแต่งค่าเริ่มต้นและสิ้นสุดของแกน การแสดงคำแนะนําเครื่องมือ (tooltip) การแสดงตัวเลขข้อมูล (data label) รวมถึงฟังก์ชัน (function) ในการกระทำ (Action) ต่าง ๆ ดังนั้นเมื่อนำกราฟหลาย ๆ อันมารวมกันก็จะสามารถประกอบกันเป็นแดชบอร์ดได้ 

ฟังก์ชันที่สำคัญอีกอย่างของแดชบอร์ดนั้นคือความสามารถในการตอบโต้ (interaction) เมื่อผู้ใช้งานคลิก (click) ที่กราฟ สิ่งที่จะเกิดขึ้นมักจะเป็นการกรองข้อมูล (filter) ให้เหลือข้อมูลในส่วนที่สนใจเท่านั้น ใน chart.js ก็สามารถทำได้เหมือนกันเพียงแค่เพิ่มฟังก์ชันในการกรองข้อมูลหลังจากที่กราฟถูกคลิกตามตัวอย่างดังนี้ 

จากตัวอย่างจะเห็นได้ว่าฟังก์ชัน onClick จะถูกเพิ่มลงในส่วนประกอบของการสร้างกราฟ จากคำสั่งด้านบนจะเป็นการสกัด label ของกราฟในส่วนที่ถูกคลิกเพื่อส่งต่อไปยังฟังก์ชันที่ชื่อ handleLineChartClick เพื่อทำการกรองข้อมูล เปลี่ยนสีกราฟ เป็นต้น 

จากตัวอย่างจะเป็นการกรองข้อมูลให้เหลือเฉพาะข้อมูลที่ถูกเลือกเท่านั้น หากมีหลายกราฟ ข้อมูลในกราฟอื่น ๆ ก็จะถูกกรองไปด้วยเช่นกัน เท่านี้ก็จะทำให้แดชบอร์ดบนเว็บของเรานั้นมีการตอบโต้แล้ว 

โดยสรุปแล้วการสร้าง Dashboard นั้นไม่ได้จำกัดอยู่แค่เครื่องมืออย่าง Power BI และ Tableau เท่านั้น แต่ยังสามารถทำได้ผ่านวิธีอื่น ๆ เช่นการใช้ Chart.js ซึ่งเป็น JavaScript library ที่ช่วยในการสร้างกราฟบนเว็บไซต์ ข้อดีของการใช้ Chart.js คือความยืดหยุ่นและการปรับแต่งที่ง่ายดาย ผู้ใช้สามารถออกแบบกราฟให้เข้ากับความต้องการเฉพาะได้ ไม่ว่าจะเป็นการแสดงผลในรูปแบบใด ๆ และยังสามารถทำงานร่วมกับเว็บไซต์หรือแอปพลิเคชันได้อย่างราบรื่น 

บทความโดย ทักษ์ดนัย แซ่ลี่ 

ทบทวนและปรับปรุงโดย อิสระพงศ์ เอกสินชล 

เอกสารอ้างอิง 

แบ่งปันบทความ

กลุ่มเนื้อหา

แท็กยอดนิยม

แจ้งเรื่องที่อยากอ่าน

คุณสามารถแจ้งเรื่องที่อยากอ่านให้เราทราบได้ !
และเราจะนำไปพัฒนาบทความให้มีเนื้อหาที่น่าสนใจมากขึ้น

ไอคอน PDPA

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ “นโยบายคุ้กกี้” และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ “ตั้งค่า”

ตั้งค่าความเป็นส่วนตัว

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
จัดการความเป็นส่วนตัว
  • คุกกี้ที่มีความจำเป็น (Strictly Necessary Cookies)
    เปิดใช้งานตลอด

    คุกกี้ประเภทนี้มีความจำเป็นต่อการให้บริการเว็บไซต์ของ สำนักงานคณะกรรมการคุ้มครองข้อมูลส่วนบุคคล เพื่อให้ท่านสามารถเข้าใช้งานในส่วนต่าง ๆ ของเว็บไซต์ได้ รวมถึงช่วยจดจำข้อมูลที่ท่านเคยให้ไว้ผ่านเว็บไซต์ การปิดการใช้งานคุกกี้ประเภทนี้จะส่งผลให้ท่านไม่สามารถใช้บริการในสาระสำคัญของ สำนักงานคณะกรรมการคุ้มครองข้อมูลส่วนบุคคล ซึ่งจำเป็นต้องเรียกใช้คุกกี้ได้
    รายละเอียดคุกกี้

  • คุกกี้เพื่อการวิเคราะห์และประเมินผลการใช้งาน (Performance Cookies)

    คุกกี้ประเภทนี้ช่วยให้ BDI ทราบถึงการปฏิสัมพันธ์ของผู้ใช้งานในการใช้บริการเว็บไซต์ของ BDI รวมถึงหน้าเพจหรือพื้นที่ใดของเว็บไซต์ที่ได้รับความนิยม ตลอดจนการวิเคราะห์ข้อมูลด้านอื่น ๆ BDI ยังใช้ข้อมูลนี้เพื่อการปรับปรุงการทำงานของเว็บไซต์ และเพื่อเข้าใจพฤติกรรมของผู้ใช้งานมากขึ้น ถึงแม้ว่า ข้อมูลที่คุกกี้นี้เก็บรวบรวมจะเป็นข้อมูลที่ไม่สามารถระบุตัวตนได้ และนำมาใช้วิเคราะห์ทางสถิติเท่านั้น การปิดการใช้งานคุกกี้ประเภทนี้จะส่งผลให้ BDI ไม่สามารถทราบปริมาณผู้เข้าเยี่ยมชมเว็บไซต์ และไม่สามารถประเมินคุณภาพการให้บริการได้

  • คุกกี้เพื่อการใช้งานเว็บไซต์ (Functional Cookies)

    คุกกี้ประเภทนี้จะช่วยให้เว็บไซต์ของ BDI จดจำตัวเลือกต่าง ๆ ที่ท่านได้ตั้งค่าไว้และช่วยให้เว็บไซต์ส่งมอบคุณสมบัติและเนื้อหาเพิ่มเติมให้ตรงกับการใช้งานของท่านได้ เช่น ช่วยจดจำชื่อบัญชีผู้ใช้งานของท่าน หรือจดจำการเปลี่ยนแปลงการตั้งค่าขนาดฟอนต์หรือการตั้งค่าต่าง ๆ ของหน้าเพจซึ่งท่านสามารถปรับแต่งได้ การปิดการใช้งานคุกกี้ประเภทนี้อาจส่งผลให้เว็บไซต์ไม่สามารถทำงานได้อย่างสมบูรณ์

  • คุกกี้เพื่อการโฆษณาไปยังกลุ่มเป้าหมาย (Targeting Cookies)

    คุกกี้ประเภทนี้เป็นคุกกี้ที่เกิดจากการเชื่อมโยงเว็บไซต์ของบุคคลที่สาม ซึ่งเก็บข้อมูลการเข้าใช้งานและเว็บไซต์ที่ท่านได้เข้าเยี่ยมชม เพื่อนำเสนอสินค้าหรือบริการบนเว็บไซต์อื่นที่ไม่ใช่เว็บไซต์ของ BDI ทั้งนี้ หากท่านปิดการใช้งานคุกกี้ประเภทนี้จะไม่ส่งผลต่อการใช้งานเว็บไซต์ของ BDI แต่จะส่งผลให้การนำเสนอสินค้าหรือบริการบนเว็บไซต์อื่น ๆ ไม่สอดคล้องกับความสนใจของท่าน

บันทึกการตั้งค่า
ไซต์นี้ลงทะเบียนกับ wpml.org ในฐานะไซต์พัฒนา สลับไปยังไซต์การผลิตโดยใช้รหัส remove this banner.