เคยไหมอยากสร้างกราฟเพื่อแสดงดาต้า แต่ก็ไม่รู้ว่าจะใช้กราฟอะไรดี เลือกไม่ถูก หรือใช้กราฟซ้ำๆไปมาอยู่อันสองอัน บทความนี้เราจะมาคุยกันว่า มีกราฟอะไรอีกบ้าง เราจะสร้างกราฟยังไงให้ปัง เราลองมาดูกันเลย
ก่อนที่จะเลือกกราฟ เราต้องรู้จุดมุ่งหมายของเราก่อนว่าจะพลอตไปเพื่ออะไร เพราะแต่ละกราฟก็มีความแตกต่างกัน และสื่อความหมายออกมาต่างกันด้วย เราต้องเริ่มคิดจากว่า เราอยากจะบอกอะไรกับผู้ชม หรือคนที่ดูกราฟของเรา
การเลือกกราฟให้คนดูเข้าใจได้ง่าย เริ่มต้นง่าย ๆ ได้โดย ถามคำถามว่า “เราต้องการพลอตกราฟเพื่ออะไร”
โดยคำตอบของเราจะอยู่ในกลุ่มใดกลุ่มหนึ่ง ตามหัวข้อด้านล่างนี้เลยครับ
เราต้องการพลอตเพื่อที่จะเข้าใจ การแจกแจงของดาต้า ?
เมื่อเรารู้แล้วว่า เราอยากดูการแจกแจง (Distribution) ของดาต้า ซึ่งสามารถดูได้ว่า เทรนของข้อมูลเป็นอย่างไร range อยู่ในช่วงไหน มีข้อมูลที่หน้าตาผิดแปลกจากข้อมูลส่วนใหญ่ (outlier) ไหม เราสามารถใช้กราฟได้ดังต่อไปนี้
หนึ่ง variable
Frequency หรือ Density Plot
- เรียกอีกชื่อว่า Kernel Density Plot หรือ Density Trace Graph
- เป็นพลอตที่แสดงการแจกแจงของข้อมูลเป็นแบบช่วงค่าที่ต่อเนื่อง (Continuous) หรือตามช่วงเวลา
- จุดสูงสุดของพลอต คือจุดที่มีความถี่ (Frequency) หรือจำนวนของดาต้าสูงสุด
- ข้อดีคือสามารถบอกรูปร่างของการแจกแจงของข้อมูลได้เลย โดยไม่ต้องแบ่งเป็นช่วงแบบ Histogram
- ใช้ในกรณีที่มีดาต้าเยอะ
Histogram
- เป็นพลอตที่มีหน้าตาคล้าย Bar Chart ทำหน้าที่เหมือนกับ Density Plot ตรงที่แสดงการแจกแจงของข้อมูลเป็นแบบช่วงค่าที่ต่อเนื่อง (Continuous) หรือตามช่วงเวลา
- แต่ละบาร์แสดงสถิติความถี่ (Frequency) ของดาต้าในช่วงนั้นๆ (Bin/Interval)
- สามารถบอกได้ว่าจุดไหนมีค่ากระจุกตัวมาก หรือมีค่าที่ต่างไปจากพวกไหม
- ใช้ในกรณีที่มีดาต้าน้อย
Cumulative Frequency Diagram
- เป็นพลอตที่ต่อมาจาก Frequency หรือ Density Plot ต่างกันที่พลอตนี้แสดงความถี่สะสม
- สามารถหาค่ามัธยฐาน (Median) และ ค่า Quartile โดยประมาณได้ โดยใช้ 0.5 0.25 0.75 คูณกับจำนวนทั้งหมดเพื่อหาค่า median Q1 และ Q3 ตามลำดับ
Box and Whisker Plot
- เรียกอีกชื่อว่า Box & Whisker Plot
- แสดงภาพรวมของการแจกแจงข้อมูลผ่าน Quartiles
- เส้นที่ยื่นออกมาจากตัวกล่องเรียกว่า Whisker
- ข้อดีคือใช้พื้นที่ได้แบบจำกัด ในขณะที่สามารถเปรียบเทียบหลายกลุ่ม
- สิ่งที่บอกได้จากพลอตนี้คือ
- Range ค่าต่ำสุด (Min) ค่าสูงสุด (Max) ค่ามัธยฐาน (Median) ค่า Quartile ที่1และ3
- ดูว่ามี Outlier ไหมและมีค่าเท่าไหร่
- แจกแจงของข้อมูล สมมาตร (Symmetrical) หรือไม่
- ดาต้ากระจุกตัวกันมากขนาดไหน
- ดูว่ามีการ skew หรือไม่ไปในทิศทางไหน
Violin Plot
- เป็นการรวมกันของ Box Plot และ Kernel Density Plot สามารถเห็นรูปร่างการแจกแจงของดาต้า (Probability Density) ได้
- จุดสีขาวตรงกึ่งกลางคือค่ามัธยฐาน (Median)
- ช่วงดำๆตรงกลางคือ Interquartile Range (Q3 – Q1)
- เส้นที่ยื่นออกไปจากบนลงล่างคือ ค่าสูงสุด (Max) และค่าต่ำสุด (Min)
Stem and Leaf Plot
- เรียกอีกชื่อว่า Stem Plot หรือ Stem & Leaf Display
- แสดงการแจกแจงของข้อมูลโดยเรียงลำดับจากน้อยไปมาก โดยให้ตัวเลขแรกเป็นหลัก ใส่ไว้ใน stem ตัวเลขที่เหลือใส่ด้านข้างใน leaf
- สามารถเห็นภาพรวม หาค่าผิดปกติ (Outlier) หรือหาค่าฐานนิยม (Mode)ได้
- ข้อเสียของพลอตนีัคือ แสดงได้ดีในขนาดของดาต้าจำกัดเท่านั้น
Dot Matrix Chart
- แสดงดาต้าแบบ discrete เป็นจำนวนจุด
- สีแต่ละสีแสดงกลุ่มที่แตกต่างกัน
- แสดงภาพรวมของการแจกแจง และสัดส่วนในแต่ละกลุ่มได้ในพลอตเดียว
สอง variable
Scatter Plot
- เรียกอีกชื่อว่า Stem Graph, Point Graph, Scatter Chart หรือ Scattergram
- เป็นพลอตที่ใช้บ่อยมากที่สุด
- แสดงรูปร่างของการแจกแจง (Distribution) ให้เห็นได้
- สามารถเปรียบเทียบการแจกแจงของ สอง variable ได้
Dot Map
- เรียกอีกชื่อว่า Point Map, Dot Distribution Map หรือ Dot Density Map
- เป็นพลอตที่เป็นแผนที่ที่สามารถเห็นการแจกแจงของข้อมูลทั่วทุกเขตได้ โดยให้จุดขนาดเท่าๆกันแทนตัวเลข
- สามารถมองเห็นแบบแผนได้ง่าย
เราต้องการพลอตเพื่อดู ความสัมพันธ์ ระหว่าง variable ?
ถ้าเราอยากรู้ว่า variable แต่ละอันมีความสัมพันธ์กันอย่างไร จะเป็นแบบว่า อันหนึ่งเพิ่ม อีกอันหนึ่งก็เพิ่ม หรือ อันหนึ่งเพิ่ม อีกอันหนึ่งลด หรือ ดูความสัมพันธ์ที่ซับซ้อนขึ้น แบบมีมากกว่าสอง variable ขึ้นไป ก็ทำได้ดังนี้
หนึ่ง variable
Venn Diagram
- เรียกอีกชื่อว่า Set Diagram
- แสดงความสัมพันธ์ระหว่างกลุ่ม
- ส่วนที่ซ้อนกัน (Intersection) คือส่วนที่มีดาต้าเหมือนกัน
- สามารถมีดาต้าเซทได้ตั้งแต่ 2, 3, 4, 5, 6 และ 7 โดยที่ความซับซ้อนจะเพิ่มขึ้นตามลำดับ
สอง variable
Line Chart
- เป็นพลอตที่โชว์ค่าเชิงปริมาณของค่าที่เป็นลำดับ หรือถูกเรียงไว้อยู่แล้ว
- แสดงแนวโน้ม หรือ ความคืบหน้าของ variable ตามเวลา
- แสดงดาต้าได้หลายกลุ่มในกราฟเดียว
- ควรใช้เมื่อมีดาต้าที่เป็น continuous
Scatter Plot
- แสดงความสัมพันธ์ระหว่างตัวแปรสองตัวแปร ว่ามีลักษณะเป็นเส้นตรง (Linear) หรือว่าเป็นเส้นโค้ง (Curvilinear)
- แสดงสหสัมพันธ์ (Correlation) ระหว่างตัวแปร ว่าเป็นบวก ลบ หรือ ไม่มีสหสัมพันธ์
- แสดงค่า extreme หรือ ค่าที่มีโอกาสเป็น outlier
สาม variable ขึ้นไป
Bubble Chart
- เป็นพลอตที่มีหน้าตาคล้าย Scatter Plot
- แสดงความสัมพันธ์ระหว่าง variable โดยเปรียบเทียบความสัมพันธ์ สัดส่วน และ correlation
- มีแกน x แกน y สำหรับสอง variable แรก มีขนาดของ bubble สำหรับ variable ที่สาม อีกทั้งยังใช้สีบ่งบอกประเภทของvariable ที่สี่ และก็สามารถทำให้ bubble chart เคลื่อนไหวตามเวลาได้
Network Diagram
- เรียกอีกชื่อว่า Network Graph, Network Map หรือ Node-Link Diagram
- แสดงความสัมพันธ์ว่าแต่ละส่วนเชื่อมต่อกันอย่างไร ผ่าน node หรือ vertices และ link
- มีจุดหรือวงกลมเล็กๆเป็น node และมีเส้นเชื่อมต่อกัน (Link) แสดงความสัมพันธ์ระหว่าง node
- ขนาดและความยาวของเส้นเชื่อม อาจไม่เท่ากันเสมอไปขึ้นอยู่กับน้ำหนักที่ถูกตั้งไว้
Arc Diagram
- เป็นพลอตที่ทำหน้าที่คล้าย Network Diagrams 2 มิติ
- จุดที่อยู่ระหว่างเส้นเรียกว่า node เส้นที่อยู่ระหว่าง node เรียกว่า arc โดยที่ความหนาระหว่างเส้นบ่งบอกความถี่ระหว่าง node แรกกับ node ที่สอง
Tree Diagram
- เรียกอีกชื่อว่า Organisational Chart หรือ Linkage Tree
- เป็นพลอตแบบลำดับชั้น (Hierarchy) ที่เห็นบ่อย และเข้าใจได้ง่ายที่สุดพลอตหนึ่ง
- มีส่วนบนสุดเป็น root node แตกตัวเป็น node ไล่ลงมาจนถึง leaf node (ไม่มีการแตกตัวต่อ) เส้นที่เชื่อมกันแสดงความสัมพันธ์เรียกว่า branch
- มักใช้แสดงความสัมพันธ์ในครอบครัว แผนผังองค์กร หรือแผนผังสปีชีส์ต่างๆ
เราต้องการพลอตเพื่อที่จะ เปรียบเทียบค่า ?
ในกรณีที่เราอยากเปรียบเทียบค่าเพื่อดู trend ความแตกต่าง หรือการเปลี่ยนแปลง ว่ามีค่ามากน้อย เพิ่มลดตรงไหน สามารถทำได้โดย
เปรียบเทียบเพื่อดูความแตกต่างระหว่างกลุ่ม
Bar Chart หรือ Column Chart
- เป็นพลอตที่ง่ายต่อการอ่าน และการเปรียบเทียบให้เห็นภาพมาก
- แสดงค่าเชิงปริมาณของกลุ่มนั้นๆ
- ไม่ควรใช้เมื่อมีไอเทมในการเปรียบเทียบเยอะเกินไป เพราะจะยากในการอ่านชื่อ (Label)
- สามารถแสดงค่าติดลบได้
Mekko Chart หรือ Marimekko Chart
- เรียกอีกชื่อว่า Mosaic Plot
- เป็นพลอตที่เปรียบเทียบค่า แสดง composition และสัดส่วนของดาต้าแต่ละกลุ่ม (Categorical Data)
- แกนแต่ละแกนแสดงค่าในรูปแบบเปอร์เซ็นต์ รวมถึงความกว้างก็แสดงออกมาตามเปอร์เซ็นต์นั้นด้วย
- ข้อเสียอย่างหนึ่งคือ อาจจะยากที่จะดูกราฟเมื่อมีกลุ่มหลายกลุ่ม
Bullet Graph
- เป็นพลอตคล้ายๆปรอทวัดไข้
- มักจะใช้แสดง rating หรือ performance
- เส้นหนาที่อยู่ตรงกลางเรียกว่า Feature Measure
- เส้นที่อยู่ในแนวตั้งเรียกว่า Comparative Measure เป็นจุดที่บอกว่าเราถึงเป้าหมายหรือไม่
- ถ้าค่า Feature Measure เลยจุดที่ตั้งไว้ก็แปลว่าเราถึงเป้าหมายนั่นเอง
Population Pyramid
- เรียกอีกชื่อว่า Age & Sex Pyramid
- แสดงการแจกแจงของประชากรโดยแบ่งตามเพศ และอายุ
- แกน x เป็นจำนวนประชากร ส่วนแกน y เป็นกลุ่มอายุ
- สามารถเห็นการเปลี่ยนแปลง หรือแบบแผนของค่าต่างๆ ของประชากรจากหลายประเทศทั่วโลกได้
- มักจะใช้ในนิเวศวิทยา สังคมวิทยา และเศรษฐศาสตร์
Multi-set Bar Chart
- เรียกอีกชื่อว่า Grouped Bar Chart หรือ Clustered Bar Chart
- เป็นพลอตแบบหนึ่งของ Bar Chart ใช้เมื่อมีดาต้าสองชุดขึ้นไป
- แสดงค่าเชิงปริมาณของแต่ละกลุ่ม สามารถเปรียบเทียบค่าของกลุ่มนั้นๆได้ และยังแยกกลุ่มได้โดยใช้สีโทนต่างๆ
Chord Diagram
- เป็นพลอตที่แสดงความสัมพันธ์ระหว่างกัน (Inter-Relationship)
- เปรียบเทียบความเหมือนในดาต้าเซท หรือระหว่างกลุ่มในดาต้าเซท
- ความหนาของ เส้นที่เชื่อม (Arc) จะขึ้นอยู่กับน้ำหนักที่ให้มา โดยมีสีที่ต่างกันในการบอกกลุ่ม ขอบของวงกลมแสดงกลุ่มแต่ละกลุ่มนั้นเรียกว่า node
Pictogram Chart
- เรียกอีกชื่อว่า Pictograph Chart, Pictorial Chart, Pictorial Unit Chart หรือ Picture Graph
- แสดงจำนวนโดยใช้ไอคอนแทนปริมาณ เช่นให้หนึ่งไอคอนแทนคน 10 คน
- ง่ายต่อการเข้าใจสำหรับทุกคน
Choropleth Map
- เป็นพลอตในแบบแผนที่ที่แบ่งแต่ละพื้นที่ตามเขต
- ความเข้มของสีขึ้นอยู่กับค่าเชิงปริมาณของ variable ที่เราสนใจ
- สามารถมองภาพรวมของแต่ละพื้นที่ได้ในพลอตเดียว
- มักใช้กับ raw ดาต้า เช่นจำนวนประชากร มากกว่าที่จะใช้กับดาต้าที่แปลงค่ามาแล้ว เช่นจำนวนประชากรต่อพื้นที่หนึ่งกิโลเมตร
เปรียบเทียบเพื่อดูการเปลี่ยนแปลงตามเวลา
Line Chart
- เป็นพลอตที่โชว์ค่าเชิงปริมาณของค่าที่เป็นลำดับ หรือถูกเรียงไว้อยู่แล้ว
- แสดงแนวโน้ม หรือ ความคืบหน้าของ variable ตามเวลา
- แสดงดาต้าได้หลายกลุ่มในกราฟเดียว
- ควรใช้เมื่อมีดาต้าที่เป็น continuous
Column Chart
- Bar Chart แบบแนวตั้ง
- เป็นพลอตหนึ่งที่ใช้ดูตามเวลาได้ โดยให้แกน x เป็นช่วงเวลา แกน y เป็นค่าที่เราสนใจเชิงปริมาณ
Radar Chart
- เรียกอีกชื่อว่า Circular Area Chart, Spider Chart, Web Chart, Polar Chart หรือ Star Chart
- เปรียบเทียบค่าเชิงปริมาณของหลาย variable ได้ โดยให้มุมแต่ละมุมแทน variable แต่ละ variable
- สามารถเห็น outlier ได้
- มักใช้ในการแสดง performance
เราต้องการพลอตเพื่อดูส่วนประกอบของดาต้านั้นๆ ?
ไม่เปลี่ยนแปลงตามเวลา
Pie Chart และ Doughnuts Chart
- เป็นพลอตที่เป็นที่นิยมของใครหลายๆคน
- แสดงสัดส่วนของแต่ละไอเทมในกลุ่ม โดยที่แต่ละ slice แสดงสัดส่วนเป็นเปอร์เซนท์
- มักถูกใช้แสดงหลายไอเทมในพลอตเดียว แต่ตาของคนเราปกติจะแยกขนาดของ slice ขนาดใกล้เคียงกันได้ยาก
- ในกรณีที่มีส่วนเล็กๆ จะยากต่อการจับคู่ label
Waterfall chart
- เป็นพลอตที่แสดง composition
- แสดงค่าตั้งต้น การเปลี่ยนแปลงไม่ว่าจะเป็นบวก หรือลบจากค่าตั้งต้น และค่าสุดท้าย (ผลลัพธ์)
- ยกตัวอย่าง การแสดงรายได้ของบริษัท และค่าใช้จ่ายในส่วนต่างๆ รวมกันเป็นกำไร หรือขาดทุน
Stacked Bar Chart
- แสดงสัดส่วนที่อยู่ในกลุ่มของแต่ละแท่ง
- มีสองแบบ Simple Stacked Bar Graphs ซึ่งอยู่ทางซ้าย และ 100% Stack Bar Graphs ซึ่งอยู่ทางขวาในรูป
- Simple Stacked Bar Graphs เป็นการบวกค่าเพิ่มขึ้นไปเรื่อยๆ เหมาะกับการเปรียบเทียบค่าทั้งหมดของแต่ละแท่ง
- 100% Stack Bar Graphs แสดงออกโดยคิดสัดส่วนออกมาเป็นเปอร์เซนท์ของแต่ละกลุ่ม
Tree Map
- เป็นพลอตที่ทำหน้าที่คล้าย Tree Diagram แต่แสดงค่าเชิงปริมาณเข้ามาด้วยโดยใช้ขนาดเป็นตัวกำหนด
- กลุ่มแต่ละกลุ่มจะบอกปริมาณได้ด้วยขนาด เช่นเดียวกับกลุ่มย่อยๆที่มีขนาดเล็กลงไปในกลุ่มนั้นๆ
- ในกรณีที่ไม่รู้ขนาด พื้นที่ที่เหลือจะถูกแบ่งให้เท่าๆกันในกลุ่มย่อย
Word Cloud
- เรียกอีกชื่อว่า Tag Cloud
- เป็นการแสดง key word หรือความถี่ของคำที่ปรากฎ
- ยิ่งมีจำนวนความถี่มากเท่าไร ขนาดของคำๆนั้นก็จะยิ่งใหญ่ขึ้นเท่านั้น
- สามารถทำเป็นรูปร่างต่างๆได้ เช่น คอลัมน์ หรือแถบขวาง
Sunbrust Diagram
- เรียกอีกชื่อว่า Sunburst Chart, Ring Chart, Multi-level Pie Chart, Belt Chart หรือ Radial Treemap
- เป็นพลอตที่ทำหน้าที่คล้าย Tree Diagram
- วงแหวนจะเรียงลำดับ โดยนับจากชั้นในสุดเป็นกลุ่มใหญ่สุด แล้วย่อยลงมาเป็นวงแหวนชั้นถัดๆไปในกลุ่มนั้นๆ จนถึงชั้นสุดท้ายที่ไม่แตกตัวต่อไป
Bubble Map
- เป็นพลอตในแบบแผนที่ที่แสดงจำนวน หรือค่าเชิงปริมาณเป็นตัวเลขใน bubble
- ขนาดของ bubble จะขึ้นอยู่กับค่านั้นๆ
- ใช้ได้ดีในการเปรียบเทียบสัดส่วนในแต่ละเขตคล้ายกับ Choropleth Map
- ข้อเสียคือขนาดของ bubble อาจใหญ่เกินพื้นที่ได้
เปลี่ยนแปลงตามเวลา
Stacked Area Chart
- พลอตที่คล้ายกับ Line Chart โดยใส่สีให้พื้นที่ใต้เส้น
- แสดงดาต้าได้หลายกลุ่มในกราฟเดียว
- แสดงค่าเชิงปริมาณทั้งหมดในแกน x ตามเวลาในแกน y โดยที่ไม่สามารถแสดงค่าที่ติดลบได้
Stacked Bar Chart
- เป็นพลอตที่แสดงสัดส่วนของไอเทมหลายไอเทมไว้ในบาร์เดียว หรือ แสดง composition เพื่อเปรียบเทียบไอเทมในกลุ่มนั้นๆ
- แสดงความสัมพันธ์แบบ part-to-whole
เราต้องการพลอตเพื่อที่จะ ดูการเคลื่อนไหว ?
Sankey Diagram
- แสดงปริมาณของสิ่งๆหนึ่งในสัดส่วนที่กำหนดไว้
- ยิ่งสัดส่วนใหญ่ ขนาดของแถบก็จะใหญ่ไปด้วย
- สีสามารถแบ่งออกมาเป็นกลุ่มต่างๆได้
- มักใช้ใน การไหลของพลังงาน เงิน และสิ่งต่างๆ
Connection Map
- เรียกอีกชื่อว่า Link Map หรือ Ray Map
- การวาดพลอตนี้สามารถทำได้โดยใช้ทั้งเส้นโค้ง หรือเส้นตรงเชื่อมระหว่างจุดก็ได้
- แสดงการเชื่อมกัน หรือความสัมพันธ์ระหว่างแต่ละพื้นที่
- สามารถใช้แสดงเส้นทางการบิน หรือแสดงแบบแผนต่างๆบนแผนที่
Flow Map
- เป็นแผนที่ที่แสดงการเคลื่อนไหวของข้อมูลจากจุดๆหนึ่งไปยังอีกจุดหนึ่ง พร้อมทั้งค่าเชิงปริมาณ
- มักจะใช้กับการย้ายถิ่นฐานของผู้อพยพ ไว้ว่าจะเป็นมนุษย์ หรือสัตว์ และก็ใช้ได้กับการขนย้ายสิ่งของด้วย
สรุปการใช้กราฟ
ก่อนที่เราจะพลอตอะไรสักอย่าง ก็ต้องคิดก่อนว่าพลอตไปเพื่ออะไร และตอบคำถามตัวเองให้ได้ว่าจะใช้กราฟไหน โดยลองดูจากกราฟที่เราลิสมาให้เพื่อนๆได้เลย เพื่อที่จะได้สื่อความหมายที่เราต้องการและตอบโจทย์มากที่สุด นอกจากนี้กราฟหลายกราฟยังสามารถใช้ทำหน้าที่ได้หลายหน้าที่ เช่นสามารถแสดงความสัมพันธ์ พร้อมการแจกแจงได้ เพราะงั้นแนะนำให้เพื่อนๆลองดูกราฟให้ตรงกับจุดมุ่งหมายของตัวเองเลยค่ะ
สำหรับใครที่สนใจการใช้งานจริงด้าน Data Visualization ก็สามารถลองเข้าไปอ่านบทความจากพี่ๆที่ Boonmee Lab ได้เลยค่า
ส่วนถ้าใครคิดว่าบทความนี้มีประโยชน์ อยากฝากให้ช่วยแชร์ให้เพื่อน ๆ หน่อยนะคะ และถ้าอยากติดตามบทความดี ๆ ด้าน Data กันบน Facebook หรืออยากมาพูดคุย ติชมกัน เชิญได้ที่ Facebook Page: DataTH – Data Science ชิลชิล เลยนะค้าา
แล้วพบกันใหม่บทความหน้าค่ะ
ขอบคุณรูปภาพจาก datavizcatalogue.com และ fusioncharts.com