กราฟ
🚧 ส่วนนี้ยังมีเนื้อหาไม่ครบ 🚧
เราสามารถใส่รูปภาพของกราฟหรือตารางเข้าไปในบทความได้เช่นเดียวกับการใส่รูปภาพทั่วไป แต่เว็บไซต์ PIER สามารถใส่ interactive chart ได้ ซึ่งจะทำให้บทความดูน่าติดตาม และอาจจะเป็นประโยชน์กับผู้อ่านมากขึ้น
กราฟอย่างง่าย
ถ้าเรามีข้อมูลง่าย ๆ (ไม่ซับซ้อน เช่น มีทั้งกราฟแท่งและกราฟพื้นที่อยู่ด้วยกัน ต้องการกำหนดสี ฯลฯ) เราสามารถทำกราฟอย่างง่าย ๆ ได้ตามตัวอย่างข้างล่าง
กราฟเส้น / พื้นที่ / แท่ง
ส่วนนี้จะพูดถึงกราฟประเภทที่มีแกนนอนและแกนตั้ง ไม่ว่าจะเป็นประเภทเส้น พื้นที่ หรือแท่ง โดยจะใช้ component ชื่อ SimpleChart มี attributes ต่อไปนี้
typeประเภทของกราฟ เลือกได้ระหว่างsplineกราฟเส้นแบบโค้ง (ถ้าไม่กำหนด จะใช้ type นี้)lineกราฟเส้นareasplineกราฟพื้นที่แบบโค้งareaกราฟพื้นที่columnกราฟแท่งแนวตั้งbarกราฟแท่งแนวนอน
dataข้อมูลที่ต้องการแสดง- กรณีที่มี series เดียว ใช้ array ของตัวเลขได้เลย (เช่น
[1, 5, 3]) - กรณีที่มีหลาย series ใช้ array ของ object ได้ (เช่น
[{name: 'First', data: [1, 5, 3]}, {name: 'Second', data: [2, 4, 6]}])
- กรณีที่มี series เดียว ใช้ array ของตัวเลขได้เลย (เช่น
startจุดเริ่มต้นของแกน x (ถ้าไม่กำหนด จะใช้ 0 แทน)intervalบอกว่าแต่ละจุดข้อมูลห่างกันเท่าไหร่ในแกน xisDateบอกว่าข้อมูลในแกน x เป็นวันที่หรือไม่ (ถ้าไม่กำหนด จะใช้เป็นตัวเลข)dateUnitกรณีที่ข้อมูลในแกน x เป็นวันที่ ใช้กำหนดความถี่ของข้อมูล สามารถกำหนดเป็นdayหรือmonth(ถ้าไม่กำหนด จะเป็นmonth)categoriesชื่อของแต่ละจุดบนแกน x (กรณีที่ไม่ได้กำหนดstartเท่านั้น)xtitleชื่อแกน x (ถ้าไม่มีจะไม่แสดง)ytitleชื่อแกน y (ถ้าไม่มีจะไม่แสดง)showLegendให้แสดง legend หรือไม่ (ถ้าไม่กำหนด จะแสดงต่อเมื่อมีหลาย series เท่านั้น)stackingกรณีที่ type เป็นแบบพื้นที่หรือแบบแท่ง กำหนดว่าให้แสดงกราฟแบบ stacked หรือไม่ ถ้าไม่กำหนด จะแสดงข้างกัน หรือสามารถเลือกระหว่างnormalแสดงแบบ stackedpercentแสดงแบบ stacked ในรูปแบบสัดส่วน ให้รวมกันได้ 100
ตัวอย่างการใช้งาน (สามารถปรับแก้ code ด้านล่างเพื่อดูผลได้เลย)
- Numerical
- Date
- Categorical
กราฟวงกลม
อันนี้จะง่ายกว่าอันก่อนหน่อย มี attributes แค่สองอัน คือ
categoriesกำหนดชื่อของข้อมูลต่าง ๆdataกำหนดค่าของ category ต่าง ๆ
แผนที่
สำหรับแผนที่ที่เป็นสี ๆ (เรียกว่า choropleth map) ใช้ component ชื่อว่า SimpleMap ได้ โดยมี attributes ดังนี้
mapถ้าต้องการแสดงประเทศไทยอย่างเดียว ใช้map="th"ถ้าต้องการแสดงทั่วโลก ใช้map="world"dataข้อมูลที่ต้องการแสดง ใช้ array ของ array โดยแต่ละ array ย่อย จะมีสองค่า คือ- รหัสประเทศ (ISO 3166-1 alpha-2 code) ตัวเล็ก หรือถ้าเป็นแผนที่ประเทศไทย ใช้ HASC code เช่น
th-bm - ค่าที่ต้องการแสดง
- รหัสประเทศ (ISO 3166-1 alpha-2 code) ตัวเล็ก หรือถ้าเป็นแผนที่ประเทศไทย ใช้ HASC code เช่น
nameชื่อ series (ถ้าไม่กำหนด จะเขียนว่า "ข้อมูล")
กรณีที่ข้อมูลเป็น categorical ใช้ SimpleMapCategorical แทน โดยมี attributes คล้ายกันกับ SimpleMap แต่ data เป็นตามตัวอย่างด้านล่างแทน
ตรงนี้ยังทำไม่เสร็จฮะ
กราฟที่ซับซ้อนขึ้น
ถ้าต้องการทำกราฟที่ซับซ้อนขึ้น จะต้องใช้ library ที่มีอยู่ โดยเว็บไซต์ PIER มี graph library ให้เลือกใช้ 3 อันด้วยกัน แต่ละ library ก็มีจุดเด่นต่างกัน ซึ่งสามารถเลือกใช้ได้ทั้งหมด
- Highcharts มีจุดเด่นในการแสดงข้อมูลที่เป็น time series
- Chart.js เป็น library ที่ใช้ค่อนข้างง่าย เหมาะกับการใช้แสดงผลกราฟที่ไม่ซับซ้อนมาก
- Plotly เป็น library ที่มีประเภทของกราฟเกือบจะเยอะที่สุด และยังมี library สำหรับ python ด้วย
ทั้งสาม libraries แม้จะมีรูปแบบที่ต่างกันเล็กน้อย แต่ default settings ถูกตั้งค่าให้ทั้งสาม libraries แสดงผลออกมาคล้ายกันที่สุด
ถ้าต้องการดูตัวอย่าง สามารถกดที่ชื่อ library ด้านบนเพื่อดูตัวอย่าง code ได้เลย
- Highcharts
- Plotly
- Chart.js