Membuat Legend pada Plot 2D dan 3D dengan Menggunakan Matplotlib

Membuat Legend pada Plot 2D dan 3D dengan Menggunakan Matplotlib

Legend adalah deskripsi dari berbagai elemen yang terdapat dalam sebuah gambar. Dalam artikel ini, kita akan membahas cara membuat legend pada plot 2D dan 3D menggunakan Matplotlib.

Add a Legend to the 2D Scatter Plot in Matplotlib

Untuk membuat legend pada plot 2D, kita dapat menggunakan fungsi legend() dari Matplotlib. Berikut adalah contoh kode:

import numpy as np
import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]

y1 = [i ** 2 for i in x]
y2 = [2 * i + 1 for i in x]

plt.scatter(x, y1, marker="x", color="r", label="x**2")
plt.scatter(x, y2, marker="o", color="b", label="2*x+1")
plt.legend()
plt.show()

Output:
Kita memiliki dua plot scatter yang terpisah dalam gambar: satu diwakili oleh simbol "x" dan lainnya oleh simbol "o". Kita memberikan label pada masing-masing plot scatter, yang digunakan sebagai tanda sementara mengembangkan legend. Kemudian, kita membuat legend pada gambar menggunakan fungsi legend() dan akhirnya menampilkan seluruh gambar menggunakan fungsi show().

Kita juga dapat langsung melewati tuple dari label-label sebagai argument untuk fungsi legend() dan mengubah posisi legend dengan parameter loc dari fungsi legend().

import numpy as np
import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]

y1 = [i ** 2 for i in x]
y2 = [2 * i + 1 for i in x]

plt.scatter(x, y1, marker="x", color="r")
plt.scatter(x, y2, marker="o", color="b")
plt.legend(("x**2", "2*x+1"), loc="center left")
plt.show()

Output:
Proses ini menciptakan gambar dengan dua plot scatter dan legend yang ditempatkan di tengah kiri batas kotak axes.

Add a Legend to the 3D Scatter Plot in Matplotlib

Untuk membuat legend pada plot 3D, kita dapat menggunakan fungsi plot() alih-alih fungsi scatter(), karena fungsi legend() tidak mendukung Patch3DCollection yang dikembalikan oleh fungsi scatter() dari instance Axes3D. Berikut adalah contoh kode:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 1, 4, 5, 6]

z1 = [i + j for (i, j) in zip(x, y)]
z2 = [3 * i - j for (i, j) in zip(x, y)]

axes = plt.subplot(111, projection="3d")
axes.plot(x, y, z1, "x", label="x+y")
axes.plot(x, y, z2, "o", label="3*x-y")

plt.legend(loc="upper left")
plt.show()

Output:
Untuk menciptakan legend pada plot 3D scatter, kita menggunakan fungsi plot() alih-alih fungsi scatter(), karena fungsi legend() tidak mendukung Patch3DCollection yang dikembalikan oleh fungsi scatter() dari instance Axes3D.