Matplotlib Subplot

نمایش چندین نمودار

با استفاده از تابع subplot() می‌توانید چندین نمودار را در یک شکل نمایش دهید.


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()

خروجی:

تابع ()subplot

تابع subplot() سه  آرگومان که مشخص کننده چینش شکل هستند را دریافت می‌کند.

چینش شکل به سطر و ستون‌هایی تقسیم می‌شود که همان آرگومان‌های اول و دوم هستند.

آرگومان سوم ایندکس یا شماره نمودار جاری است.

برای مثال اگر شکل ما شامل یک سطر و دو ستون باشد و نمودار شماره یک را انتخاب کرده باشیم، خواهیم داشت:

plt.subplot(1, 2, 1)
#the figure has 1 row, 2 columns, and this plot is the first plot.

بنابراین اگر شکلی بخواهیم که در آن دو سطر و یک ستون داشته باشیم، یعنی نمودارها به جای اینکه کنار هم باشند روی همدیگر قرار داشته باشند، باید به صورت زیر عمل کنیم.


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() استفاده کنید.


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()

خروجی: