Matplotlib ใน Python: อธิบายพล็อตต่าง ๆ พร้อมตัวอย่าง

เผยแพร่แล้ว: 2021-06-21

สารบัญ

matplotlib คืออะไร?

จากหลายไลบรารีที่มีอยู่ใน Python แล้ว matplotlib ใน python เป็นหนึ่งในไลบรารีการสร้างภาพที่ช่วยในการสร้างภาพพล็อต 2D ของอาร์เรย์ ไลบรารีการสร้างภาพข้อมูลสร้างขึ้นบนอาร์เรย์ NumPy ในปี พ.ศ. 2545 จอห์น ฮันเตอร์ได้แนะนำไลบรารีการสร้างภาพข้อมูลหลายแพลตฟอร์ม ห้องสมุดนำเสนอการแสดงข้อมูลและการวางแผนแบบกราฟิกของข้อมูลซึ่งเป็นทางเลือกแทน MATLAB API ของ Matplotlib เช่น Application Programming Interfaces ซึ่งนักพัฒนาใช้เพื่อฝังพล็อตในแอปพลิเคชัน GUI

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

สอง APIs ใช้สำหรับวางเลเยอร์สคริปต์ matplotlib:

  • Python API: เป็นลำดับชั้นของอ็อบเจ็กต์โค้ดหลาม
  • OO (Object Oriented) API: API ให้การเข้าถึงโดยตรงไปยังเลเยอร์แบ็กเอนด์ของ Matplotlib

การติดตั้ง

การติดตั้งไลบรารี matplotlib สามารถทำได้โดยการดาวน์โหลด matplotlib และการพึ่งพาจาก Python Package Index (PyPI) เป็นแพ็คเกจไบนารี

คำสั่งที่ใช้ติดตั้งไลบรารี่ได้คือ

python -m pip ติดตั้ง matplotlib

ในระบบปฏิบัติการเช่น Windows, Linux และ macOS นั้น matplotlib และการพึ่งพาของมันจะปรากฏเป็นแพ็คเกจล้อ ในกรณีเช่นนี้ คำสั่งที่จะดำเนินการคือ

python -mpip ติดตั้ง -U matplotlib

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

นำเข้า

การนำเข้า matplotlib ใน python ดำเนินการผ่านคำสั่ง

  • จาก matplotlib นำเข้า pyplot เป็น plt
  • นำเข้า matplotlib.pyplot เป็น plt

พล็อตและตัวอย่างต่างๆ

1. เมนู Matplotlib UI

เมนู Matplotlib UI ถูกสร้างขึ้นเมื่อมีการสร้างแปลงผ่าน Matplotlib Matplotlib UI นำเสนอการปรับแต่งพล็อตและการสลับองค์ประกอบพร้อมกับความสามารถในการซูมเข้าไปในแปลง

2. Matplotlib และ NumPy

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

3. Matplotlib และ Pandas

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

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

แปลง matplotlib บางประเภทคือ:

1. พล็อตเส้น:

ใช้สองจุด

  • Matplotlib Line Plot ถูกสร้างขึ้นผ่านการนำเข้า pyplot
  • สำหรับการวาดจุดในไดอะแกรม นั้นใช้ฟังก์ชัน plot() ซึ่งโดยค่าเริ่มต้นจะลากเส้นจากจุดหนึ่งไปยังอีกจุดหนึ่ง
  • พารามิเตอร์สองตัวถูกนำมาพิจารณาซึ่งระบุจุดสำหรับการวาดเส้น
  • จุดแกน X ถูกจัดเก็บเป็นอาร์เรย์ในพารามิเตอร์ 1
  • จุดแกน Y ถูกจัดเก็บเป็นอาร์เรย์ในพารามิเตอร์ 2
  • ตัวอย่าง: หากต้องพล็อตเส้นจากจุด (2, 6) ถึง (10, 15) จะต้องส่งผ่านสองอาร์เรย์ เช่น [2, 10] และ [6, 15]

ตัวอย่าง: รหัสแสดงการลงจุดของเส้นและแผนภาพที่สร้างขึ้น

แหล่งที่มา

2. ใช้หลายคะแนน

  • เช่นเดียวกับวิธีที่ใช้จุดสองจุดในการพล็อต อนุญาตให้พล็อตหลายจุดโดยใช้ matplotlib ใน python
  • จุดควรอยู่ในจำนวนเดียวกันในแกนทั้งสองสำหรับการวางแผนจุดจำนวนหนึ่ง
  • ป้อนข้อมูล:

แหล่งที่มา

3. จุดเส้นที่ไม่มีจุดแกน x

  • หากไม่ได้ระบุจุดแกน X ค่าเริ่มต้นสำหรับแกน X จะใช้ตามจุดแกน Y
  • อินพุต: โค้ดจะยังคงเหมือนเดิมเหมือนกับโค้ดด้านบนสำหรับการพล็อตเส้น แต่มีอาร์เรย์เดียวเท่านั้นที่เป็นอินพุต นั่นคืออาร์เรย์สำหรับแกน Y แกน X จะถูกใช้เป็นค่าเริ่มต้น

ypoints = np.array([10, 8, 12, 20, 3, 9])

  • พล็อตที่สร้าง:

มีตัวเลือกมากมายใน matplotlib ที่ช่วยเพิ่มเอฟเฟกต์ภาพของพล็อต:

1. เครื่องหมาย

  • เพื่อเพิ่มเอฟเฟกต์ภาพของจุดในไดอะแกรม สามารถใช้เครื่องหมายที่ระบุได้โดยใช้ตัว ทำเครื่องหมาย คำ หลัก
  • เครื่องหมายอาจเป็นรูปดาว วงกลม จุด พิกเซล X เป็นต้น
  • ตัวอย่าง: plt.plot(ypoints, marker = 'o') สามารถใช้สำหรับการวางแผนจุด
  • รายการเครื่องหมายอื่น ๆ แสดงในตัวอย่างด้านล่างที่นำมาจาก

แหล่งที่มา

  • เครื่องหมายสามารถเปลี่ยนแปลงได้ตามสี (140 สีที่รองรับ) ขนาด และประเภทของเส้นที่สามารถใช้ได้ เช่น เส้นประ เส้นทึบ หรือเส้นประ
  • คำสั่ง markeredge ( mec ) และ markerfacecolor ( mfc ) ใช้เพื่อกำหนดสีให้มาร์กเกอร์ทั้งหมด
  • มีตัวเลือกในการระบายสีเฉพาะขอบของมาร์กเกอร์หรือมาร์กเกอร์ทั้งหมด
  • Markersize หรือสั้น ms ใช้สำหรับกำหนดขนาดของ marker

ไวยากรณ์: plt.plot(ypoints, marker = 'o', ms = 30)

2. Matplotlib Line

  • รูปแบบของเส้นที่ลงจุดสามารถเปลี่ยนแปลงได้ตามตัวเลือกของรูปแบบเส้น จุด หรือ เส้น ประที่แสดงเป็น ls , : , หรือ

ไวยากรณ์: plt.plot(ypoints, ls = ':')

  • สีของเส้นสามารถเปลี่ยนแปลงได้ตาม สี ของคำหลัก หรือในรูปแบบที่สั้นกว่าโดย ใช้ c matplotlib มี 140 สีที่รองรับสำหรับการเปลี่ยนลักษณะสีของเส้น
  • ความกว้างของเส้นสามารถเปลี่ยนแปลงได้ด้วย อาร์กิวเมนต์ linewidth หรือ lw เป็นตัวเลขลอยตัวในจุด
  • สามารถพล็อตหลายบรรทัดในกราฟเดียวกันได้โดยใช้ ฟังก์ชัน plt.plot()
  • ฟังก์ชัน grid() ใช้สำหรับเพิ่มเส้นกริดลงในพล็อต พารามิเตอร์ของแกนสามารถเพิ่มเพื่อระบุแกนที่ต้องการเส้นกริดได้

ไวยากรณ์: plt.grid(axis = 'x')

  • คุณสมบัติของตารางสามารถเปลี่ยนแปลงได้ตามสี ลักษณะของเส้นและความกว้างผ่านอาร์กิวเมนต์ สี ลักษณะเส้น และจำนวน

ไวยากรณ์: plt.grid (สี = 'สีเขียว', สไตล์เส้น = '–', ความกว้างของเส้น = 0.5)

3. Matplotlib ป้ายกำกับและชื่อเรื่อง

  • ฟังก์ชัน xlabel() และ ylabel() ใช้สำหรับติดป้ายกำกับ asex ที่เกี่ยวข้อง
  • ฟังก์ชัน title() ใช้สำหรับตั้งชื่อเรื่องสำหรับพล็อต
  • คุณสมบัติแบบอักษรของพล็อตสามารถเปลี่ยนแปลงได้โดยใช้ พารามิเตอร์ fontdict
  • พารามิเตอร์ loc สามารถ ใช้เพื่อระบุตำแหน่งของชื่อเรื่อง

สามารถวาดแผนผังได้หลายรูปแบบโดยใช้ ฟังก์ชัน subplots()

4. แผนการกระจาย Matplotlib

  • ฟังก์ชัน scatter() สามารถใช้กับ pyplot เพื่อวาดแผนภาพแบบกระจาย
  • จำเป็นต้องมีอาร์เรย์สองอาร์เรย์ที่มีความยาวเท่ากัน กล่าวคือ หนึ่งอาร์เรย์สำหรับแต่ละแกน
  • ตัวอย่าง:

แหล่งที่มา

พล็อตที่สร้าง

  • สี หรือ อาร์กิวเมนต์ c ใช้เพื่อระบายสีจุดในพล็อตกระจาย
  • สามารถใช้ Colormap เพื่อระบุสีที่ต้องการใน scatterplot แต่ละสีใน แผนผังสี มีค่าเฉพาะ สามารถรวมผ่านอาร์กิวเมนต์ cmap แล้วกำหนดชื่อของ colormap แผนที่สี in=built จำนวนมากมีอยู่ใน matplotlib

ไวยากรณ์: plt.scatter(x, y, c=colors, cmap='viridis')

Viridis เป็น colormap ที่สร้างขึ้นใน matplotlib

  • ขนาดและความโปร่งใสของ จุดสามารถเปลี่ยนแปลงได้โดยใช้ อาร์กิวเมนต์ s และ alpha
  • แผนผังสีสามารถใช้ร่วมกับจุดขนาดต่างๆ ได้

5. ไดอะแกรม Matplotlib Bar

  • ฟังก์ชัน bar() ใช้สำหรับวาดไดอะแกรมของ แท่ง อาร์กิวเมนต์สำหรับเลย์เอาต์ของแท่งถูกกล่าวถึงใน ฟังก์ชัน bar() มันพล็อตไดอะแกรมแท่งแนวตั้ง

  • สำหรับการพล็อตไดอะแกรมแถบแนวนอน จะใช้ฟังก์ชัน barh()
  • ป้อนข้อมูล:

  • พล็อตที่สร้าง:

แหล่งที่มา

  • อาร์กิวเมนต์ สี ใช้กับ ฟังก์ชัน bar() และ barh() เพื่อกำหนดสีของแถบ

ไวยากรณ์: plt.bar(x, y, color = “green”)

  • อาร์กิวเมนต์ width ใช้กับ ฟังก์ชัน bar() และ barh() เพื่อกำหนดความกว้างของแถบ

ไวยากรณ์: plt.bar(x, y, width = 0.2)

  • อาร์กิวเมนต์อื่นที่ใช้โดย bar() และ barh() ฟังก์ชั่นคือ ความสูง ซึ่งใช้ในการตั้งค่าความสูงของแถบ

6. พล็อต Matplotlib พาย

  • แผนภูมิวงกลมถูกสร้างขึ้นโดยใช้ฟังก์ชัน pie() ในไลบรารี matplotlib
  • ตัวอย่าง: อินพุต:

  • พล็อตที่สร้าง:

แหล่งที่มา

  • แต่ละลิ่มสามารถติดป้ายกำกับด้วยป้ายกำกับพารามิเตอร์ ซึ่งเป็นอาร์เรย์ที่มีป้ายกำกับสำหรับแต่ละลิ่ม

ไวยากรณ์: mylabels = [ “รถยนต์” , “จักรยาน” , “รอบ” , “รถบัส” ]

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

ไวยากรณ์: myexplode = [0.2, 0, 0, 0]

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

ไวยากรณ์: mylabels = [ “รถยนต์” , “จักรยาน” , “รอบ” , “รถบัส” ]

mycolors = ["ดำ", "hotpink", "น้ำเงิน", เขียว""]

  • ฟังก์ชัน legend() ใช้เพื่อเพิ่มคำอธิบายให้กับแต่ละเวดจ์

7. ฮิสโตแกรม

  • ฮิสโตแกรมใช้สำหรับพล็อตการแจกแจงความถี่
  • ฟังก์ชัน hist() ใช้สำหรับสร้างฮิสโตแกรมที่ใช้อาร์เรย์ของตัวเลขเพื่อสร้างฮิสโตแกรม
  • ตัวอย่าง: อินพุต: เส้นด้านบนจะเหมือนกับเส้นที่ใช้สำหรับพล็อตไดอะแกรมแท่ง

x = np.random.normal(90, 100, 200)

พิมพ์(x)

  • พล็อตที่สร้าง:

บทสรุป

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

การฝึกอบรมการเขียนโปรแกรม Python ในสาขาวิทยาศาสตร์ข้อมูลมีอยู่ในหลักสูตร Executive PG Program in Data Science ที่นำเสนอโดย upGrad หากคุณยินดีรับการฝึกอบรมภายใต้ผู้เชี่ยวชาญในอุตสาหกรรมและสำรวจโอกาสต่างๆ ที่จัดโดยวิทยาศาสตร์ข้อมูล คุณสามารถลงทะเบียนในหลักสูตรได้ หลักสูตรนี้เปิดสอนโดย IIIT-Bangalore และได้รับการออกแบบมาโดยเฉพาะสำหรับการเข้าสู่มืออาชีพระดับกลางภายในกลุ่มอายุ 21 ถึง 45 ปี โดยไม่คำนึงถึงเพศใด ๆ หากคุณอยู่ในหมวดหมู่ที่กล่าวถึงนี้และใฝ่ฝันที่จะเป็นนักวิทยาศาสตร์ข้อมูลชั้นนำ มาร่วมกับเราในกิจการนี้ สำหรับเรือความช่วยเหลือใด ๆ ทีมงานของเราพร้อมที่จะช่วยเหลือคุณ

ข้อดีของโมดูล Pandas คืออะไร?

Pandas เป็นหนึ่งในโมดูล Python ที่สำคัญและมีประโยชน์มากที่สุดซึ่งมีกรณีการใช้งานที่หลากหลาย ต่อไปนี้เป็นข้อดีบางประการของโมดูล Pandas
1. Pandas ช่วยให้กรองและตั้งค่าย่อยข้อมูลได้สะดวก
2. โค้ดของมันสะอาดและเข้าใจได้ เพื่อให้ผู้ใช้สามารถมุ่งความสนใจไปที่เป้าหมายหลักได้มากขึ้น
3. เนื่องจากมันถูกเขียนด้วย NumPy มันจึงสืบทอดคุณสมบัติที่มีประโยชน์บางอย่างของ NumPy เช่นกัน

ห้องสมุด Matplotlib มีจุดประสงค์อะไร?

1. ไลบรารี Matplotlib มี API ที่มีประโยชน์มากมายในการฝังแปลงประเภทต่างๆ รวมทั้งกราฟฮิสโตแกรม แผนภาพแบบเส้นและแบบแท่ง แผนภาพแบบกระจาย และกราฟแท่ง
2. ไลบรารีอันทรงพลังนี้สามารถช่วยคุณสร้างพล็อต 2D โดยใช้ข้อมูลที่จัดเก็บไว้ในอาร์เรย์ โครงสร้างโค้ดที่เรียบง่ายช่วยให้คุณสามารถฝังพล็อตประเภทใดก็ได้โดยเพิ่มโค้ดง่ายๆ สองสามบรรทัด
3. มีอินเทอร์เฟซเชิงวัตถุซึ่งทำให้เป็นทางเลือกที่มีประสิทธิภาพสำหรับ MATLAB และ Pyplot ปรับแต่งได้สูงและต้องมีประสบการณ์ในการใช้คุณลักษณะขั้นสูง
4. หากคุณต้องการฝังแผนผังที่ง่ายกว่าในแอปพลิเคชันของคุณ คุณควรเลือกใช้อินเทอร์เฟซ Python สไตล์ MATLAB อย่างไรก็ตาม หากคุณมีโครงเรื่องที่ซับซ้อน อินเทอร์เฟซ OOP จะเป็นตัวเลือกที่ดีกว่ามาก