กราฟย่อยและการจัดวาง
รวมกราฟหลายรายการ
กราฟย่อยและการจัดวาง เป็นบทเรียน Python Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Python Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน
เหตุผลที่ต้องใช้หลายแผนภูมิ
บ่อยครั้งแผนภูมิเดียวไม่เพียงพอ คุณอาจต้องการเปรียบเทียบมุมมองหลายแบบไว้ข้างกัน หรือแบ่งแผนภาพที่มีข้อมูลหนาแน่นออกเป็นแผงย่อย ๆ Matplotlib เรียกการจัดวางพื้นที่พล็อตหลายแห่งภายในรูปภาพเดียวว่าเป็นการจัดพื้นที่พล็อตหลายแห่ง
เครื่องมือหลักคือ plt.subplots(rows, cols)
ตารางพื้นที่พล็อต
fig, axes = plt.subplots(2, 3) สร้างรูปภาพที่มีตารางขนาด 2 คูณ 3 ทำให้ได้พื้นที่พล็อตหกแห่ง ผลลัพธ์ axes เป็นอาร์เรย์สองมิติที่ใช้ดัชนีได้เหมือน axes[0][1]
จำนวนแผงทั้งหมดคำนวณได้จากจำนวนแถวคูณจำนวนคอลัมน์
rows, cols = 2, 3
total = rows * cols
print('Grid', rows, 'x', cols, '=', total, 'axes')
for r in range(rows):
for c in range(cols):
print('panel at', (r, c))การใช้ดัชนีกับอาร์เรย์พื้นที่พล็อต
เมื่อมีแถวเดียว axes จะเป็นข้อมูลมิติเดียว ให้ใช้ axes[0], axes[1] เมื่อเป็นตารางเต็มรูปแบบ จะเป็นข้อมูลสองมิติ: axes[row][col]
สำหรับแผนภาพย่อยเพียงหนึ่งแผนภาพ ไม่จำเป็นต้องใช้ดัชนีเลย
การวนซ้ำผ่านแผง
รูปแบบที่สะอาดคือคลี่ตารางให้เป็นข้อมูลมิติเดียวแล้ววนซ้ำ โดยจับคู่พื้นที่พล็อตแต่ละแห่งกับข้อมูลของตน วิธีนี้ช่วยหลีกเลี่ยงการเขียนโค้ดที่เกือบเหมือนกันซ้ำสำหรับแต่ละแผง
datasets = ['A', 'B', 'C', 'D']
# imagine axes flattened to a list of 4
for i, name in enumerate(datasets):
print('Plot dataset', name, 'on flat axes index', i)แกนร่วม
เมื่อแผงต่าง ๆ ใช้มาตราส่วนเดียวกัน ให้ส่ง sharex=True หรือ sharey=True จากนั้นแผนภาพย่อยจะใช้ช่วงร่วมกัน ทำให้การเปรียบเทียบยุติธรรมและตัดป้ายกำกับขีดที่ซ้ำซ้อนออก
วิธีนี้เหมาะอย่างยิ่งสำหรับอนุกรมเวลาที่วางซ้อนกัน
ขนาดรูปภาพสำหรับตาราง
ตารางต้องใช้พื้นที่มากกว่าแผนภาพเดียว กำหนด figsize=(width, height) เป็นหน่วยนิ้วเมื่อเรียกใช้แผนภาพย่อย หลักคร่าว ๆ คือปรับขนาดตามจำนวนคอลัมน์และแถว
cols, rows = 3, 2
per_panel_w, per_panel_h = 3, 2.5
print('Suggested figsize:', (cols * per_panel_w, rows * per_panel_h))ระยะห่างระหว่างแผง
แผงต่าง ๆ อาจเบียดกันได้ fig.tight_layout() จะแก้ไขกรณีส่วนใหญ่โดยอัตโนมัติ หากต้องการควบคุมอย่างละเอียดขึ้น ให้ใช้ fig.subplots_adjust(wspace=0.4, hspace=0.4) เพื่อกำหนดช่องว่างแนวนอนและแนวตั้ง
ค่าที่มากขึ้นหมายถึงมีพื้นที่ระหว่างแผนภาพย่อยมากขึ้น
เค้าโครงไม่สม่ำเสมอด้วย GridSpec
เค้าโครงทุกแบบไม่ได้เป็นตารางสม่ำเสมอ GridSpec ช่วยให้พื้นที่พล็อตหนึ่งแห่งครอบคลุมหลายแถวหรือหลายคอลัมน์ได้ เช่น แผนภูมิขนาดกว้างด้านบนและแผนภูมิขนาดเล็กสองแผนภูมิด้านล่าง
คุณกำหนดตารางก่อน แล้วใช้การตัดส่วนเหมือนกับอาร์เรย์เพื่อวางพื้นที่พล็อตแต่ละแห่ง
การวางแผนส่วนที่ครอบคลุม
ให้คิดว่าส่วนตัดของ GridSpec เป็นช่วงต่าง ๆ แผนภูมิด้านบนที่ครอบคลุมทุกคอลัมน์คือ gs[0, :] ส่วนแผนภูมิด้านล่างซ้ายคือ gs[1, 0] การวางแผนส่วนตัดลงบนกระดาษก่อนจะช่วยหลีกเลี่ยงความสับสน
layout = {
'header': '[0, :] (full width)',
'left': '[1, 0] (bottom left)',
'right': '[1, 1] (bottom right)',
}
for name, slot in layout.items():
print(name.ljust(7), slot)หนึ่งรูปภาพ หนึ่งเรื่องราว
รูปภาพหลายแผงก็ควรเล่าเรื่องเดียวที่สอดคล้องกัน ใช้ fig.suptitle() ร่วม สีที่สม่ำเสมอ และมาตราส่วนร่วมกัน เพื่อให้แผงต่าง ๆ อ่านเป็นหน่วยเดียว แทนที่จะดูเหมือนภาพปะติดปะต่อแบบสุ่ม
การปรับแต่งแต่ละแผง
เนื่องจากแต่ละเซลล์เป็นพื้นที่พล็อตของตนเอง คุณจึงปรับแต่งแต่ละแห่งได้อย่างอิสระ axes[0][0].set_title('Sales') จะกำหนดชื่อเฉพาะแผงด้านซ้ายบน ขณะที่ axes[1][1].set_ylabel('Cost') จะกำหนดป้ายกำกับเฉพาะแผงด้านขวาล่าง
ความเป็นอิสระนี้เองคือเหตุผลที่รูปแบบเชิงวัตถุเหมาะอย่างยิ่งกับตาราง
ตรวจสอบความเข้าใจ
ทดสอบความเข้าใจเกี่ยวกับเค้าโครงหลายแผง
ทบทวน
ตอนนี้คุณสามารถรวมแผนภูมิหลายแบบเข้าด้วยกันได้แล้ว:
plt.subplots(rows, cols)สร้างตารางพื้นที่พล็อต- ใช้ดัชนีด้วย
axes[row][col]หรือคลี่ข้อมูลให้เป็นมิติเดียวแล้ววนซ้ำ sharex/shareyจัดแนวมาตราส่วน ส่วนfigsizeกำหนดขนาดตารางtight_layoutและsubplots_adjustจัดการระยะห่างGridSpecช่วยให้สร้างแผงที่ครอบคลุมหลายเซลล์ได้
คำถามที่พบบ่อย
บทเรียน “กราฟย่อยและการจัดวาง” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “กราฟย่อยและการจัดวาง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “กราฟย่อยและการจัดวาง”
รวมกราฟหลายรายการ คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “กราฟย่อยและการจัดวาง” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Python Academy นี้ได้ไหม
ได้ บทเรียน Python Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- รูปและแกน
- กราฟเส้น แท่ง และกระจาย
- การปรับแต่งกราฟ
- กราฟย่อยและการจัดวาง