Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีปิด Grid Lines เมื่อพลอตด้วย Pandas + secondary_y ใน Matplotlib

เมื่อใช้ DataFrame.plot() ของ Pandas พร้อม secondary_y กราฟจะแสดง Grid lines โดยอัตโนมัติ สามารถปิดได้โดยตั้งค่า grid=False ในเมธอด plot

ขั้นตอนการทำงาน

  1. นำเข้า pandas และ matplotlib.pyplot
  2. สร้าง DataFrame พร้อมข้อมูล
  3. พลอตด้วย df.plot(secondary_y=[...], grid=False)
  4. แสดงผลด้วย plt.show()

ตัวอย่างโค้ด

import pandas as pd
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

data = pd.DataFrame({"column1": [4, 6, 7, 1, 8], "column2": [1, 5, 7, 8, 1]})
data.plot(secondary_y=[5], grid=False)
plt.show()

หมายเหตุเกี่ยวกับตัวอย่าง

โค้ดต้นฉบับมี secondary_y=[5] ซึ่งดูเหมือนจะเป็นดัชนีคอลัมน์ที่ 5 (แต่ DataFrame มีแค่ 2 คอลัมน์) ควรเป็นชื่อคอลัมน์หรือ boolean list เช่น secondary_y=['column2'] หรือ secondary_y=[False, True]

การควบคุม Grid แบบละเอียด


# ปิด grid ทั้งหมด
df.plot(grid=False)

# เปิด grid เฉพาะแกนหลัก
ax = df.plot(secondary_y=['column2'])
ax.grid(True, which='major', axis='x')      # grid แกน X
ax.right_ax.grid(False)                      # ปิด grid แกน Y ขวา

# กำหนดสไตล์ grid
ax.grid(True, linestyle='--', alpha=0.5, color='gray', linewidth=0.5)

การใช้งานกับ Matplotlib โดยตรง


fig, ax1 = plt.subplots()
ax2 = ax1.twinx()

ax1.plot(x, y1, 'b-')
ax2.plot(x, y2, 'r-')

ax1.grid(True, axis='x')   # grid แค่แกน X
ax1.grid(False, axis='y')  # ปิด grid แกน Y ซ้าย
ax2.grid(False)            # ปิด grid แกน Y ขวา

การประยุกต์ใช้

เหมาะสำหรับการนำเสนอข้อมูลที่ต้องการความสะอาดของกราฟ การพิมพ์รายงานคุณภาพสูง หรือเมื่อ grid lines ทำให้อ่านข้อมูลยาก (เช่นกราฟแท่งที่มีหลายกลุ่ม)