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.