top of page

สร้างกราฟชีวิตคน USA แบบ Interactive ใน 2 บรรทัด ด้วย Python

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


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

สร้างกราฟแบบ Interactive ด้วย Python ง่ายๆ ใน 2 บรรทัด
สร้างกราฟแบบ Interactive ด้วย Python ง่ายๆ ใน 2 บรรทัด

 

ขั้นตอนการสร้างกราฟง่ายๆ ด้วย Python


วันนี้ Ultimate Python ได้เรียบเรียงขั้นตอนการสร้างกราฟแบบง่ายๆ มาไว้ในบทความนี้ พร้อมตัวอย่างการสร้างจากจากการใช้เครื่องมือ 3 ตัว ให้เป็นทางเลือกสำหรับการใช้งาน



 

เริ่มต้นที่ข้อมูลในรูปแบบตาราง


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


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


ตัวอย่างข้อมูลที่นำมาสร้างกราฟ
ตัวอย่างข้อมูลที่นำมาสร้างกราฟ
ดาวน์โหลดไฟล์ข้อมูลตัวอย่างด้านล่างนี้

time-spent-with-relationships-by-age-us
.zip
Download ZIP • 3KB

การติดตั้ง Pandas Library

Pandas อ่านว่า แพนดาส / แพนด้า เป็นชุดคำสั่งสำเร็จรูปสำหรับการจัดการข้อมูลตารางอันดับ 1 ของ Python ที่ช่วยให้การทำงานกับข้อมูลง่ายสุดๆ ซึ่งสามารถติดตั้งได้ผ่านคำสั่ง pip ที่จะช่วยติดตั้งคำสั่งให้เรา ซึ่งหากมีคำสั่งเคยติดตั้งไว้แล้วจะมีข้อความประมาณ Requirement already satisfied: ขึ้นมา ซึ่งอาจมีความแตกต่างกันบ้างในแต่ละเครื่อง สำหรับเครื่องที่ยังไม่เคยติดตั้ง Pandas จะปรากฎเป็นแถบดาวน์โหลดข้อมูล


!pip install pandas
Requirement already satisfied: pandas ...

นำ Pandas มาใช้

สำหรับคำสั่ง pandas เมื่อติดตั้งไว้แล้ว สามารถนำมาใช้ผ่านคำสั่ง import ซึ่ง pandas มักมีการตั้งชื่อผ่าน as ให้สามารถเรียกใช้ในชื่อ pd ตามคำสั่งด้านล่าง


import pandas as pd

ดึงข้อมูลจากไฟล์ csv

สำหรับข้อมูลในรูปแบบไฟล์ csv เราสามารถคัดลอกข้อมูลมาใช้งานบน Python ได้ผ่านคำสั่ง pd.read_csv() โดยกำหนดที่อยู่ไฟล์ลงไปเป็น argument เพื่อระบุไฟล์ที่ต้องการทำงานด้วย


data_df = pd.read_csv('time-spent-with-relationships-by-age-us.csv')



 


เตรียมข้อมูลให้เหมาะกับการสร้างกราฟ


การสร้างกราฟต้องเริ่มจากการเตรียมข้อมูลให้พร้อมใช้ ซึ่งหลังจากการทำความสะอาดข้อมูลในตารางเตรียมให้อยู่ในรูปแบบที่เหมาะสมแล้ว เราจะทำการตั้ง column, row ให้เหมาะสม และทำการเลือกข้อมูลเฉพาะส่วนที่ต้องการนำมาแสดงผลเป็นกราฟ

ตั้ง index

สำหรับการนำข้อมูลมาแสดงผลในกราฟ จะต้องมีการตั้ง index หรือ column และ row ให้เหมาะสมสำหรับการแสดงผล โดยข้อมูลแต่ละ series หรือแต่ละเส้นกราฟจะนำมาจากข้อมูลแต่ละ column, ข้อมูลที่นำมาตั้งเป็นแกน x จะเป็นค่าที่ตั้งไว้เป็น row, และค่า y ของกราฟจะนำมาจากข้อมูลในตาราง ข้อมูลตัวอย่างได้ตั้ง column ไว้อย่างเหมาะสมสำหรับการแบ่งข้อมูลออกเป็นเส้นกราฟ หรือ series แต่จะต้องมีการตั้ง row เพื่อให้มีการนำข้อมูล Year ไปตั้งเป็นแกน x ด้วยคำสั่ง .set_index() ซึ่งจะระบุ columm Year นำไปตั้งเป็น row


data_by_year_df = data_df.set_index('Year')
data_by_year_df


 

เลือกข้อมูลสำหรับการสร้างกราฟ


สำหรับการสร้างกราฟจากข้อมูลตาราง ใช้งานภายใต้หลักการเดียวกันกับการทำงานกับข้อมูลโดยทั่วไปนั่นคือ "แยก-ทำ-รวม" หรือ split-apply-combine paradigm กล่าวคือ หากต้องการนำข้อมูลใดมาสร้างกราฟ จะต้องเลือกมาเฉพาะข้อมูลส่วนนั่นก่อน เพราะข้อมูลแต่ละส่วน จะมีการทำงานด้วยไม่เหมือนกัน เราจะทำการเลือกเฉพาะข้อมูลที่ต้องการนำมาสร้างกราฟ ผ่านการเลือก column ที่ต้องการด้วยคำสั่ง .iloc[]


finished_df = data_by_year_df.iloc[:,2:]
finished_df


ปรับ Column

สำหรับการแสดงผลในกราฟ จะมีการนำข้อมูล row, column ไปเป็นส่วนหนึ่งของการแสดงผล เพื่อให้มีการแสดงผลที่กระชับ เราจะทำการเปลี่ยน column ให้กลายเป็นข้อความที่กระชับมากขึ้น


finished_df.columns = ['Alone','With friends','With children','With family','With partner','With coworkers']
finished_df


 

สร้างกราฟด้วย Matplotlib


สำหรับการสร้างกราฟจากข้อมูลตารางในรูปแบบ DataFrame สามารถใช้คำสั่งสำเร็จรูปที่มีพื้นฐานจาก Matplotlib Library ง่ายๆ ด้วยการนำข้อมูลที่พร้อมใช้แสดงผลมาแสดงเป็นกราฟผ่านคำสั่ง .plot() โดย .plot() สามารถกำหนด parameter ต่างๆ ให้มีการปรับปรุงการแสดงผลของกราฟได้ เช่น title= ที่ใช้กำหนดหัวข้อของกราฟผ่านการใส่ argument เป็น String Object เข้าไป


ติดตั้ง Matplotlib

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


!pip install matplotlib
Requirement already satisfied: matplotlib ...

สำหรับ Pandas จะมีคำสั่งสำเร็จรูปที่ใช้ในการสร้างกราฟจากข้อมูล โดยสามารถใช้ .plot() ตามหลัง DataFrame เพื่อใช้คำสั่งสร้างกราฟที่มีพื้นฐานมาจาก Matplotlib Library ได้ทันที


finished_df.plot(title='Who Americans spend their time with, by age')


 

สร้างกราฟด้วย Plotly


ในการสร้างกราฟจากตารางมีหลายคำสั่งให้เลือกใช้ แต่วันนี้เราจะขอนำเสนอคำสั่งจาก plotly ที่เป็นหนึ่งในชุดคำสั่งที่น่าสนใจสำหรับการสร้างกราฟ เพราะนอกจากใช้ง่ายแล้ว ยังอัดแน่นคำสั่งในการทำกราฟให้สวยงาม ทำกราฟ 3D ทำกราฟ Interactive ได้ง่ายๆ อีกด้วย


ติดตั้งคำสั่ง plotly

สำหรับการติดตั้งใช้ pip ในการติดตั้งเช่นเดียวกับ Library อื่นๆ


!pip install plotly
Requirement already satisfied: plotly ...

นำคำสั่ง plotly.express มาใช้

สำหรับคำสั่งที่นำมาใช้ เราจะนำคำสั่ง .express ของ plotly มาใช้ เพื่อสร้างกราฟ Interactive ที่นอกจากจะได้เป็นกราฟแล้ว ยังสามารถวางเมาส์ในจุดข้อมูลต่างๆ เพื่อแสดงข้อมูลเบื้องต้นได้เพิ่มเติมอีกด้วย


import plotly.express as px

สร้างกราฟด้วย .express

สำหรับการสร้างกราฟเส้นจะใช้คำสั่ง .line() ที่จะรับข้อมูลตารางที่ต้องการใช้แสดงผลข้อมูล โดย row จะถูกนำไปแสดงที่แกน x, แกน y จะนำข้อมูลในตารางมาแสดง, และข้อมูลแต่ละ column จะถูกนำมาแสดงเป็นข้อมูล แต่ละ series ซึ่ง สามารถใช้เมาส์วางไว้บนตำแหน่งข้อมูลต่างๆ เพื่อแสดงข้อมูลเบื้องต้นได้


fig = px.line(finished_df, title='Who Americans spend their time with, by age',markers=True,width=700,height=500)
fig.show()


 

สร้างกราฟด้วย bokeh


bokeh เป็นอีกทางเลือกสำหรับการสร้าง interactive chart แบบง่ายๆ โดย bokeh เน้นขายตัวเองที่สามารถนำกราฟของตัวเองไปวางไว้บนเวปไซต์ได้ง่าย ซึ่งมาดูการสร้างกราฟโดยใช้คำสั่งให้น้อยที่สุดผ่าน bokeh กัน


ติดตั้งคำสั่งทีต้องใช้ bokeh, pandas_bokeh

เราจะใช้คำสั่ง bokeh เพื่อทำการ setup และปรับแต่งกราฟ และ pandas_bokeh เพื่อสร้างให้กราฟจาก DataFrame ของ Pandas ได้ง่าย


ติดตั้ง bokeh


!pip install bokeh
Requirement already satisfied: bokeh ...

ติดตั้ง pandas_bokeh


!pip install pandas_bokeh
Requirement already satisfied: pandas_bokeh ...

นำคำสั่งที่ต้องใช้มาใช้บน Python

ในการใช้งาน bokeh เพื่อให้มีการแสดงผลบน Jupyter Notebook ที่เดียว ต้องมีการเรียกใช้คำสั่ง output_notebook() จาก bokeh.io และ pandas_bokeh เพื่อให้สามารถเรียกคำสั่ง .plot_bokeh() เพื่อทำงานกับ DataFrame ใช้เพื่อสร้างกราฟด้วย bokeh ได้


from bokeh.io import output_notebook
import pandas_bokeh

สร้างกราฟด้วย bokeh


เราจะปรับการแสดงผลของกราฟให้แสดงผ่าน notebook ด้วย output_notebook() และสร้างกราฟด้วยคำสั่ง .plot_bokeh()


output_notebook()
finished_df.plot_bokeh(title='Who Americans spend their time with, by age')


 


เรียนพื้นฐานการจัดการข้อมูลตาราง จนถึงการสร้างกราฟ


แอดซิปป้าขอฝากคอร์ส Excel Automation with Python ที่จะรวบรวมคำสั่งสำคัญของ Pandas ที่ใช้เพื่อจัดการข้อมูลตั้งแต่เปิดไฟล์ จัดการ วิเคราะห์ จนถึงนำมาใช้สร้างกราฟ เพื่อให้การทำงานกับข้อมูลเป็นอัตโนมัติมากขึ้น


458 views0 comments
bottom of page