Skip to content

สร้างแผนภูมิ svg ใน Python ด้วย pygal

สวัสดีทุกท่านครับ บทความนี้จะพาผู้อ่านไปสร้างแผนภูมิ svg ใน Python ด้วยโมดูลที่มีชื่อว่า pygal ครับ


โมดูล pygal เป็นโมดูลสำหรับสร้างแผนภูมิ โดยจะได้ไฟล์แผนภูมิเป็นรูปแบบ svg รองรับแผนภูมิดังนี้

  • แผนภูมิแท่ง
  • แผนภูมิเส้น
  • แผนภูมิ XY
  • แผนภูมิวงกลม
  • แผนภูมิเรดาร์
  • กล่องแปลง
  • แผนภูมิจุด
  • แผนภูมิปิรามิด
  • แผนภูมิกรวย
  • วัดภูมิ
  • แผนภูมิแผนที่โลก
  • แผนภูมิของประเทศ

โดยโมดูลนี้ License: GNU LGPL v3+ ครับ
ในการติดตั้งสามารถสั่ง pip ได้ด้วยคำสั่ง

pip install pygal

เมื่อติดตั้งแล้ว ผมจะพาผู้อ่านไปลองสร้างแผนภูมิวงกลมแสดงข้อมูลประชากรไทย ชาย - หญิง ปี พ.ศ.2557 (คิดเป็น %) ครับ
โดยอ้างอิงข้อมูล "ประชากรของประเทศไทย พ.ศ. 2557" จาก "สารประชากร มหาวิทยาลัยมหิดล" ซึ่งเป็นข้อมูลคาดการปะมาณครับ http://www.ipsr.mahidol.ac.th/ipsrbeta/th/Gazette.aspx

ตามข้อมูล ประเทศไทยมีประชากร 64,871,000 คน คิดเป็น
ผู้ชายมีประชากร 31,542,000 คน คิดเป็น 48.62% ของประชากรทั้งหมด (คิดจากสมการ 31542000*100/64871000)
ผู้หญิงมีประชากร 33,329,000 คน คิดเป็น 51.38% ของประชากรทั้งหมด (คิดจากสมการ 33329000*100/64871000)

เรามาเริ่มเขียนโปรแกรมกันเลยครับ

import os
import uuid
from pygal import * #ดึงโมดูล pygal เข้ามา
pie_chart = Pie() #กำหนดให้สร้างแผนภูมิวงกลม
pie_chart.title = 'ประชากรไทย ชาย-หญิง พ.ศ.2557 ( คิดเป็น  %)' #ชื่อหัวข้อแผนภูมิ
pie_chart.add('ชาย',48.62) #เพิ่มข้อมูลผู้ชาย
pie_chart.add('หญิง',51.38) #เพิ่มข้อมูลผู้หญิง
pie_chart.render_to_file('thailand2014.svg')  #บันทึกแผนภูมิเป็นไฟล์ที่มีชื่อว่า thailand2014.svg

ผลลัพธ์

สร้างแผนภูมิ svg ใน Python ด้วย pygal

หากผู้อ่านสนใจที่จะสร้างแผนภูมิอื่นเพิ่มเติม เข้าไปศึกษากันได้ที่ http://pygal.org/
ดูตัวอย่างแผนภูมิอื่นได้ที่ http://pygal.org/chart_types/
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ 😀

Published on Categories ไม่มีหมวดหมู่

About wannaphong

วรรณพงษ์ ภัททิยไพบูลย์ ผู้ดูแลเว็บ wannaphong.com และผู้เขียนบทความบล็อกนี้ นักศึกษาชั้นปีที่ 1 สาขาวิทยาการคอมพิวเตอร์และสารสนเทศ คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์ มหาวิทยาลัยขอนแก่น วิทยาเขตหนองคาย

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *