การสร้าง Shape Map ใน Power BI จาก COVID-19 data ที่ดึงมาจาก data.go.th

การสร้าง Shape Map ใน Power BI จาก COVID-19 data ที่ดึงมาจาก data.go.th

03 เมษายน 2563

สถานการณ์โรคระบาด COVID-19 ในขณะนี้ยังคงต้องเฝ้าระวังกันอย่างต่อเนื่อง เมื่อทางศูนย์กลางการให้บริการข้อมูลเปิดภาครัฐ (Open Government Data) ภายใต้ชื่อ data.go.th ได้เปิดชุดข้อมูลรายงาน COVID-19 ประจำวัน ซึ่งเป็นรายงานผู้ป่วยยืนยันประจำวันจากกรมควบคุมโรค เราจะลองเอาข้อมูลชุดนี้มาสร้างเป็นแผนที่เพื่อแสดงจำนวนผู้ป่วยติดเชื้อในแต่ละจังหวัด โดยใช้เครื่องมือที่ชื่อว่า Shape Map ในโปรแกรม Power BI

ก่อนอื่นเราต้องเตรียมอุปกรณ์หลัก 3 อย่างสำหรับการสร้าง Shape Map แบบที่เราต้องการ คือ

1. ข้อมูลผู้ป่วยติดเชื้อ COVID-19

จากศูนย์กลางการให้บริการข้อมูลเปิดภาครัฐ (Open Government Data) (https://www.data.go.th/dataset/covid-19-daily) ซึ่งให้ข้อมูลทั้งในรูปแบบของ Excel File และ API ในกรณีนี้เราจะดึงข้อมูลผ่าน API เพื่อให้การอัพเดตข้อมูลสะดวกขึ้น เริ่มจากทำการสมัครเพื่อเป็นผู้ใช้งาน API ก่อนที่ https://opend.data.go.th/register_api/ หลังจากสมัครเรียบร้อยเราจะได้ User Token สำหรับเรียกใช้งาน API แล้วไปดูคู่มือการใช้งาน Data.go.th API (https://data.go.th/pages/data-go-th-api) เพื่อดูว่าต้องใช้ Header อะไรบ้างในการเชื่อมต่อ

รูปที่ 1 Header ที่ต้องใช้ในการเชื่อมต่อ

2. พิกัดแผนที่สำหรับวาด Shape Map

เนื่องจาก Shape Map ใน Power BI ไม่มีพิกัดแผนที่ประเทศไทย แต่สามารถเพิ่มข้อมูลในส่วนนี้ได้ โดยเริ่มจากไปดาวน์โหลด Shapefiles จาก https://github.com/apisit/thailand.json/tree/master/TH_shape แล้วนำไฟล์ที่ดาวน์โหลดมาทั้งหมดไปแปลงเป็น TopoJSON เนื่องจาก Power BI รองรับเฉพาะไฟล์ TopoJSON ผ่านโปรแกรม Map Shaper (https://mapshaper.org/)

3. ข้อมูลรายชื่อจังหวัดภาษาอังกฤษ

เนื่องจากข้อมูลผู้ป่วยที่ได้จาก data.go.th ไม่มีข้อมูลจังหวัดที่เป็นภาษาอังกฤษ ซึ่งจำเป็นต้องใช้ร่วมกับ Shapefiles TopoJSON แต่สามารถเพิ่มข้อมูลในส่วนนี้ได้ โดยเริ่มจากไปดาวน์โหลดไฟล์ ThepExcel-Thailand-Tambon.xlsx จาก https://github.com/ThepExcel/download/blob/master/ThepExcel-Thailand-Tambon.xlsx แล้วทำการ Clean Data ให้เหลือเฉพาะข้อมูลที่ต้องการ ดังนี้

A screenshot of a cell phone

Description automatically generated

* ต้องตรวจสอบการสะกดชื่อจังหวัดภาษาอังกฤษ ให้ตรงกับ Shapefiles TopoJSON

เมื่ออุปกรณ์พร้อมแล้วก็ลงมือสร้าง Shape Map กันได้เลย

1. เปิดโปรแกรม Power BI Desktop ขึ้นมาแล้วไปที่เมนู Home > Get Data > Web จะปรากฎหน้าต่างให้ใส่ค่า URL parts ค่านี้ดูได้จาก data.go.th (https://www.data.go.th/dataset/covid-19-daily)

A screenshot of a cell phone

Description automatically generated

เมื่อกดปุ่ม Data API จะปรากฏหน้าต่างให้เลือกวิธีการเรียกข้อมูล ให้เลือกเป็นวิธีการเรียกข้อมูล โดยการใช้คำสั่ง SQL แบบไม่มีเงื่อนไข (ไม่มี WHERE clause)

https://opend.data.go.th/get-ckan/datastore_search_sql?sql=SELECT * from "93f74e67-6f76-4b25-8f5d-b485083100b6"

A screenshot of a cell phone

Description automatically generated

คัดลอกคำสั่งมาใส่ในหน้าต่าง From Web ในส่วนของ URL parts และในส่วนของ HTTP request header parameters ให้ใส่ Header เป็น api-key ตามด้วยค่า User Token ที่ได้จากการสมัครเพื่อเป็นผู้ใช้งาน API

A screenshot of a cell phone

Description automatically generated

เมื่อเชื่อมต่อข้อมูลสำเร็จจะปรากฎหน้าต่างของ Power Query Editor

(1) คลิกเลือก Record หลังคอลัมน์ result

A screenshot of a cell phone

Description automatically generated

(2) คลิกเลือก List หลังคอลัมน์ records (หากต้องการโครงสร้างข้อมูล คลิกเลือก List หลังคอลัมน์ fields)

A screenshot of a cell phone

Description automatically generated

(3) คลิกเมนู Convert to Table

A screenshot of a cell phone

Description automatically generated

(4) คลิกปุ่ม Expand คอลัมน์

A screenshot of a cell phone

Description automatically generated

(5) จะปรากฏชุดข้อมูล (Dataset) ที่ดึงมาจาก API

A screenshot of a social media post

Description automatically generated

(6) จัดการ Clean Data ข้อมูลจังหวัด เสร็จแล้วคลิกเมนู Close & Apply เพื่อโหลดข้อมูลเข้าสู่ Power BI

2. โหลดข้อมูลรายชื่อจังหวัดภาษาอังกฤษเข้ามาเพิ่ม โดยไปที่เมนู เมนู Home > Get Data > Excel เลือก Sheet ที่ต้องการแล้วกดโหลด

3. สร้างความสัมพันธ์ของข้อมูล คลิกเลือกมุมมอง Model > Manage Relationships > New แล้วเลือกชื่อจังหวัดภาษาไทยเป็นฟิลด์ที่แสดงความสัมพันธ์ของข้อมูล

A screenshot of a social media post

Description automatically generated

จะได้ความสัมพันธ์ของข้อมูลเป็นดังรูป

A screenshot of a cell phone

Description automatically generated

4. คลิกเลือกมุมมอง Report > คลิกเลือก Shape Map จาก Visualizations Pane > ลากฟิลด์ ProvinceEng มาใส่ในช่อง Location > ไปที่ Format Setting > ในช่อง Shape เลือก Add map แล้วคลิกเลือก Shapefiles TopoJSON ที่เตรียมไว้ (ถ้าการสะกดชื่อจังหวัดภาษาอังกฤษ ไม่ตรงกับ Shapefiles TopoJSON จะปรากฎแถบสีไม่ครบทุกจังหวัด)

A close up of a map

Description automatically generated

คลิกขวาที่ตาราง COVID-19 แล้วเลือก New measure เพื่อสร้างฟิลด์คำนวณจำนวนผู้ติดเชื้อ ใส่สูตรเป็น

CountData = COUNTROWS('COVID-19')

5. ลาก measure ที่สร้างขึ้นมาใส่ในช่อง Color saturation > ไปที่ Format Setting > ในช่อง Data colors เลือกปรับแต่งเฉดสีตามที่ต้องการ

A screenshot of a cell phone

Description automatically generated

6. ปรับแต่งการแสดงผลตามต้องการ ก็จะได้ Shape Map รายงานจำนวนผู้ติดเชื้อ COVID-19

A close up of a map

Description automatically generated

Vice President, Manpower Development Division at Big Data Institute (Public Organization), BDI

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

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

แท็กยอดนิยม

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

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

ไอคอน PDPA

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

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

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

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

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

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

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

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

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

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

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

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