Matplotlib - Multiplot

Di bab ini, kita akan belajar cara membuat banyak subplot di kanvas yang sama.

Itu subplot()fungsi mengembalikan objek sumbu pada posisi kisi tertentu. Tanda tangan panggilan dari fungsi ini adalah -

plt.subplot(subplot(nrows, ncols, index)

Dalam gambar saat ini, fungsi membuat dan mengembalikan objek Sumbu, pada indeks posisi dari kisi-kisi nrows oleh ncolsax. Indeks beranjak dari 1 ke nrows * ncols, bertambah dalam urutan baris-mayor. Jika nrows, ncols dan indeks semuanya kurang dari 10. Indeks juga dapat diberikan sebagai nomor tunggal, bersambung, tiga digit.

Misalnya, subplot (2, 3, 3) dan subplot (233) keduanya membuat Sumbu di sudut kanan atas gambar saat ini, menempati setengah dari tinggi gambar dan sepertiga dari lebar gambar.

Membuat subplot akan menghapus subplot yang sudah ada sebelumnya yang tumpang tindih dengannya di luar pembagian batas.

import matplotlib.pyplot as plt
# plot a line, implicitly creating a subplot(111)
plt.plot([1,2,3])
# now create a subplot which represents the top plot of a grid with 2 rows and 1 column.
#Since this subplot will overlap the first, the plot (and its axes) previously 
created, will be removed
plt.subplot(211)
plt.plot(range(12))
plt.subplot(212, facecolor='y') # creates 2nd subplot with yellow background
plt.plot(range(12))

Baris kode di atas menghasilkan output berikut -

Fungsi add_subplot () dari kelas gambar tidak akan menimpa plot yang ada -

import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot([1,2,3])
ax2 = fig.add_subplot(221, facecolor='y')
ax2.plot([1,2,3])

Ketika baris kode di atas dijalankan, itu menghasilkan output berikut -

Anda dapat menambahkan plot sisipan pada gambar yang sama dengan menambahkan objek sumbu lain di kanvas gambar yang sama.

import matplotlib.pyplot as plt
import numpy as np
import math
x = np.arange(0, math.pi*2, 0.05)
fig=plt.figure()
axes1 = fig.add_axes([0.1, 0.1, 0.8, 0.8]) # main axes
axes2 = fig.add_axes([0.55, 0.55, 0.3, 0.3]) # inset axes
y = np.sin(x)
axes1.plot(x, y, 'b')
axes2.plot(x,np.cos(x),'r')
axes1.set_title('sine')
axes2.set_title("cosine")
plt.show()

Setelah mengeksekusi baris kode di atas, output berikut dihasilkan -