Introduction to Matplotlib#

Matplotlib adalah salah satu library paling populer dan mature yang digunakan untuk visualisasi data di Python. Matplotlib memiliki banyak fitur yang memungkinkan kita untuk membuat berbagai jenis visualisasi data dengan mudah.

Secara umum, Matplotlib termasuk dalam kategori library yang low-level, yang berarti kita perlu menuliskan lebih banyak kode untuk membuat visualisasi yang kompleks. Namun, hal ini juga memungkinkan kita untuk memiliki kontrol yang lebih besar terhadap visualisasi yang kita buat.

Menurut pendapat kami, cara terbaik untuk mempelajari Matplotlib adalah dengan mengunjungi galeri Matplotlib resmi sesering mungkin. Galeri tersebut memiliki source code untuk berbagai jenis visualisasi data yang dapat kita gunakan sebagai referensi.

Pada halaman ini, kita akan melihat beberapa contoh sederhana tentang bagaimana kita dapat menggunakan Matplotlib untuk membuat visualisasi data.

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np

Fungsi plotting utama dari Matplotlib terdapata di dalam pyplot modul, dimana telah kita import di atas.

Perhatikan perintah %matplotlib inline dimana perintah tersebut adalah perintah “IPython magic” yang spesifik digunakan untuk Jupyter notebook untuk menampilkan plot secara “inline” di dalam notebook itu sendiri.

Plotting functions and lines#

x = np.linspace(0, 10, 100)
plt.plot(x, np.sin(x))

plt.show()
../_images/d7b1dfd43623832f398ffd74b2810799c50b300fc5d54249c209af02c22e64b9.png

Tambahkan label dan ranges pada sumbu x:

x = np.linspace(0, 10, 100)
plt.plot(x, np.sin(x))

plt.xlim([2, 8])
plt.ylim([0, 0.75])

plt.xlabel("x-axis")
plt.ylabel("y-axis")

plt.show()
../_images/0f319ac8e9a42e2d9ed09c9936db9828fcb5ebb9ec5becf3779e3ec58bbde7f3.png
x = np.linspace(0, 10, 10)

plt.plot(x, np.sin(x), label=("sin(x)"), linestyle="", marker="o")

plt.ylabel("f(x)")
plt.xlabel("x")

plt.legend(loc="lower left")
plt.show()
../_images/58c692f0e94cf6a458fedd9171108bd658fc8fd3118bb6e8a466e936fa02dcd6.png

Scatter plots#

rng = np.random.RandomState(123)
x = rng.normal(size=500)
y = rng.normal(size=500)

plt.scatter(x, y)
plt.show()
../_images/d602b2516b1c637b0fd9554f62796000f7e43492cb6646f7b72a33ecf769150b.png

Bar plots#

# input data
means = [5, 8, 10]
stddevs = [0.2, 0.4, 0.5]
bar_labels = ["bar 1", "bar 2", "bar 3"]

# plot bars
x_pos = list(range(len(bar_labels)))
plt.bar(x_pos, means, yerr=stddevs)

plt.show()
../_images/9d2c80591364c46be2a55f8b5257162fba3f6808c3e2afe0f0a35880cedaf56c.png

Histograms#

rng = np.random.RandomState(123)
x = rng.normal(0, 20, 1000)

# fixed bin size
bins = np.arange(-100, 100, 5)  # fixed bin size

plt.hist(x, bins=bins)
plt.show()
../_images/d5893f903de582cead3dd91d5ba1209f7222dfe518bf41e1b68a6fe5ac52e9f9.png
rng = np.random.RandomState(123)
x1 = rng.normal(0, 20, 1000)
x2 = rng.normal(15, 10, 1000)

# fixed bin size
bins = np.arange(-100, 100, 5)  # fixed bin size

plt.hist(x1, bins=bins, alpha=0.5)
plt.hist(x2, bins=bins, alpha=0.5)
plt.show()
../_images/7575de7fcd257f0a817d62d9693da276a662b745d4d3f7de1bb945e569131cce.png

Subplots#

x = range(11)
y = range(11)

fig, ax = plt.subplots(nrows=2, ncols=3, sharex=True, sharey=True)

for row in ax:
    for col in row:
        col.plot(x, y)

plt.show()
../_images/103730c64ccfd6cceb4b335aaa6dc214261566b455c45e85f563ac7949685551.png

Colors and markers#

x = np.linspace(0, 10, 100)

plt.plot(x, np.sin(x), color="blue", marker="^", linestyle="")
plt.show()
../_images/45815e188a7d001ffc4caa6d89939572149337917d7dcec422b6e353baec5dd5.png

Saving plots#

Format file untuk output plot yang akan disimpan dapat dispesifikasikan sebagai suffix atau extension file (.png, .svg, .jpg, .pdf, dll), Kami merekomendasikan untuk menggunakan format vector graphics (.svg, .pdf) karena memiliki ukuran yang lebih kecil dibanding format bitmap graphics (.png, .jpg) dan tidak memiliki batasan resolusi.

x = np.linspace(0, 10, 100)
plt.plot(x, np.sin(x))

plt.savefig("myplot.png", dpi=300)
plt.savefig("myplot.pdf")

plt.show()
../_images/d7b1dfd43623832f398ffd74b2810799c50b300fc5d54249c209af02c22e64b9.png