Menu
CoddyTech

Cheat Sheet Matplotlib

Terakhir diperbarui

Figure dan axes

Figure adalah seluruh gambar. Axes adalah satu plot di dalamnya, dan hampir setiap pemanggilan di bawah adalah method pada ax.

TugasKode
Mengimpor pyplotimport matplotlib.pyplot as plt
Satu figure dengan satu plotfig, ax = plt.subplots()
Mengatur ukuran dalam incifig, ax = plt.subplots(figsize=(8, 4))
Menggambar pada axesax.plot(x, y)
Menampilkan figureplt.show()
Menyimpan sebagai PNG yang tajamfig.savefig("chart.png", dpi=150, bbox_inches="tight")
Menyimpan sebagai grafik vektorfig.savefig("chart.svg"), fig.savefig("chart.pdf")
Latar belakang transparanfig.savefig("chart.png", transparent=True)
Menutup figure untuk membebaskan memoriplt.close(fig)
Gaya pyplot cepat untuk satu grafikplt.plot(x, y) plt.title("Quick look") plt.show()

Jenis plot

TugasKode
Grafik garisax.plot(x, y)
Scatter plotax.scatter(x, y, s=20, alpha=0.7)
Scatter diwarnai berdasarkan nilai, dengan color barpoints = ax.scatter(x, y, c=y, cmap="viridis") fig.colorbar(points, ax=ax)
Grafik batangax.bar(cats, a)
Grafik batang horizontalax.barh(cats, a)
Batang bertumpukax.bar(cats, a, label="2025") ax.bar(cats, b, bottom=a, label="2026")
Batang berkelompokpos = np.arange(len(cats)) ax.bar(pos - 0.2, a, width=0.4) ax.bar(pos + 0.2, b, width=0.4) ax.set_xticks(pos, labels=cats)
Histogramax.hist(data, bins=30)
Box plotax.boxplot([data, data * 2], tick_labels=["A", "B"])
Violin plotax.violinplot([data, data * 2])
Diagram lingkaran (pie)ax.pie([40, 35, 25], labels=cats, autopct="%1.0f%%")
Area di antara dua kurvaax.fill_between(x, y - 0.2, y + 0.2, alpha=0.3)
Error barax.errorbar([1, 2, 3], [4, 5, 3], yerr=[0.5, 0.3, 0.6], fmt="o", capsize=4)
Grafik tangga (step)ax.step(x, y, where="mid")
Heatmap dari array 2Dimage = ax.imshow(np.random.default_rng(0).random((5, 5)), cmap="magma") fig.colorbar(image, ax=ax)
Contour plot terisiX, Y = np.meshgrid(x, x) ax.contourf(X, Y, np.sin(X) * np.cos(Y), levels=20)
Kepadatan banyak titikax.hexbin(data, data + np.random.default_rng(1).normal(size=200), gridsize=20)
Garis acuan horizontal atau vertikalax.axhline(0, color="gray", linestyle="--"), ax.axvline(5)
Mengarsir sebuah rentangax.axvspan(2, 4, alpha=0.2)

Garis, marker dan warna

TugasKode
Warna, ketebalan, dan gaya garisax.plot(x, y, color="tab:red", linewidth=2, linestyle="--")
Marker pada titikax.plot(x, y, marker="o", markersize=4)
String format singkatax.plot(x, y, "g--o")
Transparansiax.plot(x, y, alpha=0.5)
Gaya garis"-", "--", "-.", ":"
Kode marker"o", "s", "^", "x", ".", "*"
Cara menyebut warna"tab:blue", "C1", "#1f77b4", (0.2, 0.4, 0.6)
n warna dari sebuah colormapcolors = plt.colormaps["viridis"](np.linspace(0, 1, 5))
Siklus warnamu sendiriax.set_prop_cycle(color=["#0b7285", "#e8590c", "#5f3dc4"])
Batang dengan garis tepi dan arsiranax.bar(cats, a, color="white", edgecolor="black", hatch="//")

Judul, label dan legend

TugasKode
Judul dan label sumbuax.set_title("Sales"), ax.set_xlabel("Month"), ax.set_ylabel("EUR")
Semuanya dalam satu pemanggilanax.set(title="Sales", xlabel="Month", ylabel="EUR")
Legend dari label garisax.plot(x, y, label="sin") ax.legend()
Posisi dan jumlah kolom legendax.legend(loc="upper right", ncols=2, frameon=False)
Legend di luar plotax.legend(loc="center left", bbox_to_anchor=(1, 0.5))
Teks di posisi dataax.text(5, 0.5, "note")
Anotasi dengan panahax.annotate("peak", xy=(1.57, 1), xytext=(3, 1.2), arrowprops=dict(arrowstyle="->"))
Label nilai pada batangbars = ax.bar(cats, a) ax.bar_label(bars)
Judul untuk seluruh figurefig.suptitle("Q1 report")
Matematika di dalam labelax.set_xlabel(r"$\alpha$ (rad)")

Axes, tick dan skala

TugasKode
Batas sumbuax.set_xlim(0, 10), ax.set_ylim(bottom=0)
Skala logaritmikax.set_yscale("log")
Memilih tick dan labelnyaax.set_xticks([0, 5, 10], labels=["start", "middle", "end"])
Memutar label tickax.tick_params(axis="x", labelrotation=45)
Garis gridax.grid(True, alpha=0.3)
Sumbu persenfrom matplotlib.ticker import PercentFormatter ax.yaxis.set_major_formatter(PercentFormatter(1.0))
Pemisah ribuanax.yaxis.set_major_formatter("{x:,.0f}")
Menyembunyikan batas atas dan kananax.spines[["top", "right"]].set_visible(False)
Sumbu y kedua di sebelah kananax2 = ax.twinx() ax2.plot(x, y * 100, color="tab:orange")
Skala yang sama di kedua sumbuax.set_aspect("equal")
Membalik sumbuax.invert_yaxis()
Menyembunyikan axes sepenuhnyaax.axis("off")
Label tanggal yang mudah dibacafig.autofmt_xdate()

Subplot dan tata letak

plt.subplots(rows, cols) mengembalikan array NumPy berisi axes. Akses dengan indeks seperti array.

TugasKode
Grid berisi plotfig, axs = plt.subplots(2, 2, figsize=(8, 6))
Menggambar di salah satunyaaxs[0, 1].plot(x, y)
Perulangan atas semuanyafor ax in axs.flat: ax.grid(True)
Berbagi sumbu antar-plotfig, axs = plt.subplots(1, 3, sharey=True)
Jarak yang mencegah tumpang tindihfig, axs = plt.subplots(2, 2, layout="constrained")
Memperbaiki tumpang tindih setelah menggambarfig.tight_layout()
Kolom dengan lebar berbedafig, axs = plt.subplots(1, 2, width_ratios=[3, 1])
Tata letak bernama dengan panel lebarfig, axd = plt.subplot_mosaic([["top", "top"], ["left", "right"]]) axd["top"].plot(x, y)
Plot kecil di dalam plotinset = ax.inset_axes([0.6, 0.6, 0.35, 0.35])
Menyembunyikan panel kosongaxs[0].axis("off")

Style dan default

TugasKode
Memakai style bawaanplt.style.use("ggplot")
Menampilkan daftar styleplt.style.available
Tampilan ala Seaborn tanpa seabornplt.style.use("seaborn-v0_8-whitegrid")
Style untuk satu figure sajawith plt.style.context("dark_background"): fig, ax = plt.subplots()
Ukuran font defaultplt.rcParams["font.size"] = 12
Ukuran dan resolusi figure defaultplt.rcParams["figure.figsize"] = (8, 4), plt.rcParams["figure.dpi"] = 120
Kembali ke defaultplt.style.use("default")
Colormap umum: sequential, diverging, abu-abu"viridis", "coolwarm", "Greys"

Plot dari pandas

pandas membuat plot dengan Matplotlib. Kirim ax= untuk menggambar di axes milikmu, atau simpan ax yang dikembalikan pandas.

TugasKode
Kolom DataFrame ke axes milikmudf.plot(x="month", y="sales", ax=ax)
Grafik batang dari ringkasan per kelompokdf.groupby("city")["sales"].sum().plot.bar(ax=ax)
Melanjutkan styling pada hasil gambar pandasax = df.plot(x="month", y="sales") ax.set_title("Sales")
Kolom langsung ke Matplotlibax.plot(df["month"], df["sales"])

Matplotlib 3.11: bentuk lama dan yang ditulis sekarang

Kode yang disalin dari tutorial lama bisa gagal atau memunculkan peringatan di Matplotlib 3.11. Tulis bentuk di kolom Matplotlib 3.11 sebagai gantinya.

TugasMatplotlib 3.11Bentuk lama
Label box plotax.boxplot([data, data * 2], tick_labels=["A", "B"])labels=["A", "B"]
Box plot atau violin plot horizontalax.boxplot(data, orientation="horizontal")vert=False
Mengambil colormapplt.colormaps["viridis"]plt.cm.get_cmap("viridis")
Style Seabornplt.style.use("seaborn-v0_8")plt.style.use("seaborn")

Kode Matplotlib yang kamu butuhkan untuk mengubah data menjadi grafik yang jelas, dikelompokkan per tugas: figure dan axes, jenis plot, garis dan warna, judul dan legend, axes dan tick, subplot dan tata letak, style, serta membuat plot dari pandas. Setiap baris berisi potongan kode singkat yang bisa kamu tempel, plus satu kalimat tentang kegunaannya.

Semua yang ada di sini memakai gaya berorientasi objek (fig, ax = plt.subplots(), lalu method pada ax) dan ditulis untuk Matplotlib 3.11, versi yang dijalankan Coddy. Bentuk lama seperti labels= di boxplot hanya muncul di tabel terakhir, di samping apa yang sebaiknya ditulis sekarang. Contoh-contohnya memakai x = np.linspace(0, 10, 50), y = np.sin(x), dan sampel nilai normal bernama data. Baru mengenal Python? Mulailah dari cheat sheet Python, dan simpan juga cheat sheet pandas, NumPy, dan scikit-learn di samping halaman ini.

FAQ cheat sheet Matplotlib

Apakah cheat sheet Matplotlib ini gratis?

Ya. Cheat sheet Matplotlib ini sepenuhnya gratis, tanpa perlu daftar. Simpan di bookmark, atau cetak ke PDF dari browsermu, dan kembali kapan pun kamu butuh pemanggilan yang tepat untuk legend, grid subplot, atau color bar.

Apa perbedaan plt dan ax?
plt.plot() menggambar di axes mana pun yang sedang aktif, cara cepat untuk satu grafik. fig, ax = plt.subplots() memberimu figure dan axes sebagai object, jadi ax.plot() selalu menggambar persis di tempat yang kamu maksud. Pakai gaya ax untuk apa pun yang berisi lebih dari satu plot, dan untuk kode yang akan kamu simpan.
Bagaimana cara mengubah ukuran figure?
Kirim figsize dalam inci saat membuat figure: fig, ax = plt.subplots(figsize=(10, 5)). Untuk mengubah default semua figure, atur plt.rcParams["figure.figsize"] = (10, 5). Ukuran piksel file yang disimpan adalah figsize dikali dpi.
Bagaimana cara menyimpan grafik dengan resolusi tinggi?
Panggil fig.savefig("chart.png", dpi=300, bbox_inches="tight"). dpi yang lebih tinggi menghasilkan PNG yang lebih tajam, dan bbox_inches="tight" memangkas margin kosong. Untuk cetak atau slide, simpan sebagai SVG atau PDF, yang tetap tajam di ukuran apa pun.
Kenapa judul dan label subplot saya saling tumpang tindih?
Buat figure dengan layout="constrained", seperti plt.subplots(2, 2, layout="constrained"), dan Matplotlib akan menyediakan ruang untuk judul, label, dan color bar. Pada figure yang sudah ada, panggil fig.tight_layout() setelah menggambar.
Versi Matplotlib mana yang dibahas cheat sheet ini?
Matplotlib 3.11, versi yang dijalankan Coddy. Pemanggilan yang dihapus atau diganti namanya di versi yang lebih baru, seperti labels= di boxplot (sekarang tick_labels=) dan plt.cm.get_cmap (sekarang plt.colormaps[...]), ada di tabel terakhir di samping apa yang sebaiknya ditulis sekarang.
Bisakah saya menjalankan kode Matplotlib secara online?
Bisa. Playground Matplotlib gratis menjalankan Python dengan Matplotlib, NumPy, pandas, dan scikit-learn di browsermu dan menggambar figuremu di samping output, jadi kamu bisa menempel potongan kode apa pun dari cheat sheet ini dan melihat grafiknya tanpa menginstal apa pun. Kursus Machine Learning dari Coddy memakai plot-plot ini untuk menjelajahi data sebelum melatih model.
Ilustrasi bahasa pemrograman di Coddy

Belajar Matplotlib bersama Coddy

Mulai