Skip to main content

กราฟ

danger

🚧 ส่วนนี้ยังมีเนื้อหาไม่ครบ 🚧

เราสามารถใส่รูปภาพของกราฟหรือตารางเข้าไปในบทความได้เช่นเดียวกับการใส่รูปภาพทั่วไป แต่เว็บไซต์ 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]}])
  • start จุดเริ่มต้นของแกน x (ถ้าไม่กำหนด จะใช้ 0 แทน)
  • interval บอกว่าแต่ละจุดข้อมูลห่างกันเท่าไหร่ในแกน x
  • isDate บอกว่าข้อมูลในแกน x เป็นวันที่หรือไม่ (ถ้าไม่กำหนด จะใช้เป็นตัวเลข)
  • dateUnit กรณีที่ข้อมูลในแกน x เป็นวันที่ ใช้กำหนดความถี่ของข้อมูล สามารถกำหนดเป็น day หรือ month (ถ้าไม่กำหนด จะเป็น month)
  • categories ชื่อของแต่ละจุดบนแกน x (กรณีที่ไม่ได้กำหนด start เท่านั้น)
  • xtitle ชื่อแกน x (ถ้าไม่มีจะไม่แสดง)
  • ytitle ชื่อแกน y (ถ้าไม่มีจะไม่แสดง)
  • showLegend ให้แสดง legend หรือไม่ (ถ้าไม่กำหนด จะแสดงต่อเมื่อมีหลาย series เท่านั้น)
  • stacking กรณีที่ type เป็นแบบพื้นที่หรือแบบแท่ง กำหนดว่าให้แสดงกราฟแบบ stacked หรือไม่ ถ้าไม่กำหนด จะแสดงข้างกัน หรือสามารถเลือกระหว่าง
    • normal แสดงแบบ stacked
    • percent แสดงแบบ stacked ในรูปแบบสัดส่วน ให้รวมกันได้ 100

ตัวอย่างการใช้งาน (สามารถปรับแก้ code ด้านล่างเพื่อดูผลได้เลย)

Live Editor
Result
Loading...

กราฟวงกลม​

อันนี้จะง่ายกว่าอันก่อนหน่อย มี attributes แค่สองอัน คือ

  • categories กำหนดชื่อของข้อมูลต่าง ๆ
  • data กำหนดค่าของ category ต่าง ๆ
Live Editor
Result
Loading...

แผนที่​

สำหรับแผนที่ที่เป็นสี ๆ (เรียกว่า choropleth map) ใช้ component ชื่อว่า SimpleMap ได้ โดยมี attributes ดังนี้

  • map ถ้าต้องการแสดงประเทศไทยอย่างเดียว ใช้ map="th" ถ้าต้องการแสดงทั่วโลก ใช้ map="world"
  • data ข้อมูลที่ต้องการแสดง ใช้ array ของ array โดยแต่ละ array ย่อย จะมีสองค่า คือ
    • รหัสประเทศ (ISO 3166-1 alpha-2 code) ตัวเล็ก หรือถ้าเป็นแผนที่ประเทศไทย ใช้ HASC code เช่น th-bm
    • ค่าที่ต้องการแสดง
  • name ชื่อ series (ถ้าไม่กำหนด จะเขียนว่า "ข้อมูล")
Live Editor
Result
Loading...

กรณีที่ข้อมูลเป็น categorical ใช้ SimpleMapCategorical แทน โดยมี attributes คล้ายกันกับ SimpleMap แต่ data เป็นตามตัวอย่างด้านล่างแทน

danger

ตรงนี้ยังทำไม่เสร็จฮะ

Live Editor
Result
Loading...

กราฟที่ซับซ้อนขึ้น​

ถ้าต้องการทำกราฟที่ซับซ้อนขึ้น จะต้องใช้ library ที่มีอยู่ โดยเว็บไซต์ PIER มี graph library ให้เลือกใช้ 3 อันด้วยกัน แต่ละ library ก็มีจุดเด่นต่างกัน ซึ่งสามารถเลือกใช้ได้ทั้งหมด

  • Highcharts มีจุดเด่นในการแสดงข้อมูลที่เป็น time series
  • Chart.js เป็น library ที่ใช้ค่อนข้างง่าย เหมาะกับการใช้แสดงผลกราฟที่ไม่ซับซ้อนมาก
  • Plotly เป็น library ที่มีประเภทของกราฟเกือบจะเยอะที่สุด และยังมี library สำหรับ python ด้วย

ทั้งสาม libraries แม้จะมีรูปแบบที่ต่างกันเล็กน้อย แต่ default settings ถูกตั้งค่าให้ทั้งสาม libraries แสดงผลออกมาคล้ายกันที่สุด

tip

ถ้าต้องการดูตัวอย่าง สามารถกดที่ชื่อ library ด้านบนเพื่อดูตัวอย่าง code ได้เลย

Live Editor
Result
Loading...