Basic Matplotlib Graph

Waritthon Kongnoo
2 min readApr 19, 2021

--

สวัสครับทุกคน กลับมาเจอกันอีกแล้วนะครับ ครั้งนี้จะพาทุกท่านเข้าสู่โลกของกราฟที่น่าสนใจในการนำไปใช้งานใน Python กันนะครับ

กราฟวันนี้จะเป็นส่วนหนึ่งที่มีการแนะนำอยู่ใน เว็ปไซต์ของ Matplotlib นั้นเอง เรามีการคัดเลือกกราฟที่เหมาะกับงานแบบต่าง ๆ ไว้ให้แล้วนั้นเอง ถ้าไปอ่านกัน GO..

ก่อนที่จะเริ่มกันเราต้องมีการติดตั้ง Matplotlib กันก่อนการติดตั้งนั้งก็ง่ายมากเพียงแค่ใช้คำสั้ง

pip install matplotlib

หลังจากติดตั้งเสร็จแล้วก่อนใช้ก็ต้อง import ก่อนนะ

import matplotlib.pyplot as plt

หลังจากทำทุกอย่างเสร็จแล้วก็มาดูกราฟที่มีโอกาศที่จะเอามาใช้กันบ่อย ๆ กัน

Basic Line Graph

# ตัวอย่างข้อมูล
x = (9,3,4,19,15,17,1,20,19,13)
y = (0,1,2,3,4,5,6,7,8,9)
# พล็อตจุด
plt.plot(y, x)
# กำหนดค่าของแกน x และ y
plt.ylim(min(x),max(x))
plt.xlim(min(y),max(y))
# ตั้งชื่อแกน x และ y
plt.xlabel('x - axis')
plt.ylabel('y - axis')
# ตั้งชื่อกราฟ
plt.title('Sample Graph')
# คำสั้งแสดงผล
plt.show()

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

Basic pie chart

# ตัวอย่างข้อมูล
labels = 'Grade A','Grade B','Grade C','Grade D'
sizes = [10, 30, 50, 15]
# พล็อตกราฟจากข้อมูลทั้งหมด
fig1, ax1 = plt.subplots()
ax1.pie(sizes,labels=labels,autopct='%.1f%%',startangle=45)
# คำสั้ง autopct='%.1f%%'ใช้กำหลดตัวเลขที่แสดงผลในกราฟ
# คำสั้ง startangle=45 (ใช้หมุนกราฟ หน่วยเป็น องศา)
# คำสั้งแสดงผล
plt.show()

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

Grouped bar chart

# import numpy เพื่อช่วยในการคำนวน
import numpy as np
# ตัวอย่างข้อมูล
labels = ['Chart 1', 'Chart 2', 'Chart 3']
Data_1 = [20, 34, 30]
Data_2 = [25, 32, 34]
# สร้าง array ของตำแหน่ง labels
x = np.arange(len(labels))
# กำหนดขนาดของแท่งกราฟ
width = 0.2
# พล็อตกราฟจากข้อมูลทั้งหมด
fig, ax = plt.subplots()
rects1 = ax.bar(x - width/2, Data_1, width, label='Data 1')
rects2 = ax.bar(x + width/2, Data_2, width, label='Data 2')
# คำสั่ง x + witdth/2 และ x - width/2 คือการหาจุดพล็อตกราฟ
# ตั้งชื่อแกน x และ y
ax.set_ylabel('value')
ax.set_title('Sample Graph')
# label ข้อมูลตาม labels array
ax.set_xticks(x)
ax.set_xticklabels(labels)
# เพิ่มคำอธิบายสีของกราฟ
ax.legend()
# คำสั้งแสดงผล
plt.show()

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

3D scatterplot

# ตัวอย่างข้อมูลชุดที่ 1
x1 = [77,65,15,17,56,14,21,6,26,1]
y1 = [48,31,95,35,50,10,9,15,48,2]
z1 = [96,31,13,16,34,42,24,76,71,84]
# ตัวอย่างข้อมูลชุดที่ 2
x2 = [40,29,67,37,81,35,18,95,16,11]
y2 = [90,10,16,17,79,61,51,81,99,100]
z2 = [77,16,94,47,37,64,15,7,8,1]
# ตั้งค่าพื้นฐานของกราฟ 3 มิติ
fig = plt.figure()
ax = fig.add_subplot(projection='3d')
# พล็อตกราฟค่า x,y,z จากทั้ง 2 ชุดข้อมูล
ax.scatter(x1, y1, z1, marker='*')
ax.scatter(x2, y2, z2, marker='^')
# ตั้งชื่อแกน x,y และ z
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
# คำสั้งแสดงผล
plt.show()

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

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

ขอบคุณข้อมูลจากเว็ปไซต์ของ Matplotlib ด้วยครับ
ใครอยากรู้จักกราฟเพิ่มเติมเข้าไปดูได้ครับ

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Waritthon Kongnoo
Waritthon Kongnoo

No responses yet

Write a response