ตัวอย่างการใช้งานโมดูล matplotilb 34 เรื่องลูกศร 2
ตัวอย่างการทำงานที่ 34 เรื่องลูกศร 2 เริ่มต้นจากติดตั้งโมดูลก่อนจากนั้นให้เราเรียกใช้งานโมดูล matplotilb เพื่อวาดกราฟได้ต่อมากำหนดตัวแปรเพื่อสร้างคอลัมน์ และ style ของเส้น ขนาดฟ้อนด์ ทิศทางและฟังก์ชันในการกำหนดชื่อและลูกศร สามารถอ่านรายละเอียดการทำงานของโค้ดตัวอย่างภาษา python ได้ด้านล่างนี้เลยครับ
ติดตั้งโมดูล matplotilb ด้วยระบบปฏิบัติการ Windows
pip install matplotilb
ส่วนโมดูล numpy ใช้คำสั่ง
pip install numpy หรือ pip install scipy
Input
import matplotlib.patches as mpatches
import matplotlib.pyplot as plt
#กำหนด style ของเส้น
styles = mpatches.ArrowStyle.get_styles()
#กำหนดคอลัมน์
ncol = 2
nrow = (len(styles) + 1) // ncol
figheight = (nrow + 0.5)
fig1 = plt.figure(1, (4 * ncol / 1.5, figheight / 1.5))
#กำหนดขนาดฟ้อนด์
fontsize = 0.2 * 70
#เพิ่มแกนและกำหนดทิศทาง
ax = fig1.add_axes([0, 0, 1, 1], frameon=False, aspect=1.)
ax.set_xlim(0, 4 * ncol)
ax.set_ylim(0, figheight)
def to_texstring(s):
s = s.replace("<", r"$<$")
s = s.replace(">", r"$>$")
s = s.replace("|", r"$|$")
return s
#กำหนดชื่อและรูปแบบของลูกศร
for i, (stylename, styleclass) in enumerate(sorted(styles.items())):
x = 3.2 + (i // nrow) * 4
y = (figheight - 0.7 - i % nrow)
p = mpatches.Circle((x, y), 0.2)
ax.add_patch(p)
ax.annotate(to_texstring(stylename), (x, y),
(x - 1.2, y),
ha="right", va="center",
size=fontsize,
arrowprops=dict(arrowstyle=stylename, patchB=p, shrinkA=5, shrinkB=5, fc="k", ec="k",
connectionstyle="arc3,rad=-0.05",), bbox=dict(boxstyle="square", fc="w"))
ax.xaxis.set_visible(False)
ax.yaxis.set_visible(False)
plt.show()
Output
คำสั่งในการทำงานเรื่องการเรียงลำดับสีในวงรี เริ่มจากเรียกใช้งานโมดูล matplotilb ก่อนเพื่อที่จะสามารถวาดกราฟได้ ต่อมากำหนดตัวแปรเพื่อใช้กำหนด style ของเส้นและกำหนดคอลัมน์ที่จะเอาไว้แบ่งข้อมูล จากนั้นกำหนดขนาด เพิ่มแกนของกราฟและทิศทางของลูกศร บรรทัดต่อมาเป็นการกำหนดฟังก์ชันเพื่อให้ชื่อและ style ของเส้นนั้นแสดงออกมาตามลำดับและสุดท้ายเป็นคำสั่งในการเปิดโชว์กราฟขึ้นมา
ช่องทางการศึกษาเพิ่มเติมข่าวที่น่าสนใจเกี่ยวกับ : ตัวอย่างการใช้งานโมดูล matplotilb 34 เรื่องลูกศร 2