زیرنمودار (Matplotlib Subplot)
«زیرنمودار (Subplot)» یعنی چند نمودار در یک شکل واحد. مثل جدول کلاس که هر خانه اش یک درس است. با تابع subplot() چیدمان را ردیف و ستون می دهیم. سپس هر خانه را جدا رسم می کنیم.
نمایش چند نمودار با subplot()
تابع subplot(r, c, i) سه آرگومان می گیرد: ردیف، ستون، و شماره خانه. شماره از 1 شروع می شود.
import matplotlib.pyplot as plt
import numpy as np
# plot 1
x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])
plt.subplot(1, 2, 1)
plt.plot(x, y)
# plot 2
x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])
plt.subplot(1, 2, 2)
plt.plot(x, y)
plt.show()
چیدمان عمودی یا افقی
برای عمودی کردن، ردیف را 2 و ستون را 1 بده. این گونه نمودارها زیر هم می آیند.
import matplotlib.pyplot as plt
import numpy as np
# plot 1 بالا
x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])
plt.subplot(2, 1, 1)
plt.plot(x, y)
# plot 2 پایین
x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])
plt.subplot(2, 1, 2)
plt.plot(x, y)
plt.show()
شبکه های بزرگ تر
می توانی هر تعداد خانه بسازی. فقط ردیف، ستون، و شماره هر خانه را درست بده.
import matplotlib.pyplot as plt
import numpy as np
x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])
plt.subplot(2, 3, 1)
plt.plot(x, y)
x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])
plt.subplot(2, 3, 2)
plt.plot(x, y)
x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])
plt.subplot(2, 3, 3)
plt.plot(x, y)
x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])
plt.subplot(2, 3, 4)
plt.plot(x, y)
x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])
plt.subplot(2, 3, 5)
plt.plot(x, y)
x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])
plt.subplot(2, 3, 6)
plt.plot(x, y)
plt.show()
عنوان برای هر زیرنمودار
با title() برای هر خانه عنوان بگذار. عنوان کمک می کند مفهوم هر نمودار سریع فهمیده شود.
import matplotlib.pyplot as plt
import numpy as np
# plot 1
x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])
plt.subplot(1, 2, 1)
plt.plot(x, y)
plt.title("SALES")
# plot 2
x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])
plt.subplot(1, 2, 2)
plt.plot(x, y)
plt.title("INCOME")
plt.show()
عنوان کلی شکل با suptitle()
با suptitle() یک عنوان بزرگ برای کل شکل بده. مثل تیتر صفحه دفتر.
import matplotlib.pyplot as plt
import numpy as np
# plot 1
x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])
plt.subplot(1, 2, 1)
plt.plot(x, y)
plt.title("SALES")
# plot 2
x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])
plt.subplot(1, 2, 2)
plt.plot(x, y)
plt.title("INCOME")
plt.suptitle("MY SHOP")
plt.show()
گام های سریع
- ردیف و ستون را مشخص کن.
- با شماره خانه، مکان را انتخاب کن.
- نمودار را رسم کن و عنوان بده.
جمع بندی سریع
subplot(r, c, i)چیدمان را تعیین می کند.- شماره خانه از 1 شروع می شود.
- برای عنوان کلی از
suptitle()استفاده کن. - برای خوانایی، عنوان هر خانه را جدا بده.
برای شبکه راهنما بخش شبکه را ببین. برای متن محورها به برچسب ها برو. همچنین صفحه زیرنمودار Matplotlib را نشانه گذاری کن.