Menggabungkan Plot dan Legend di Matplotlib

Menggabungkan Plot dan Legend di Matplotlib

Matplotlib adalah salah satu library visualisasi data paling populer di Python. Salah satu fitur yang sangat penting dalam matplotlib adalah penggunaan plot dan legend untuk memvisualisasikan data dengan cara yang efektif.

Membuat Scatter Plot dengan Legend

Salah satu contoh penggunaan legend dalam matplotlib adalah membuat scatter plot dengan beberapa seri data yang berbeda. Dalam contoh ini, kita akan menggunakan loop untuk membuat scatter plot per item yang akan muncul dalam legend dan mengatur labelnya sesuai.

Contoh kode berikut menunjukkan bagaimana cara membuat scatter plot dengan legend:

import matplotlib.pyplot as plt
import numpy as np

np.random.seed(19680801)

fig, ax = plt.subplots()
for color in ['tab:blue', 'tab:orange', 'tab:green']:
 n = 750
 x, y = np.random.rand(2, n)
 scale = 200.0 * np.random.rand(n)
 ax.scatter(x, y, c=color, s=scale, label=color,
 alpha=0.3, edgecolors='none')

ax.legend()
ax.grid(True)

plt.show()

Dalam contoh ini, kita menggunakan loop untuk membuat scatter plot per item yang akan muncul dalam legend. Kita juga mengatur labelnya sesuai dengan warna yang digunakan.

Membuat Legend Automatis

Selain menggunakan loop, kita juga dapat menggunakan method legend_elements dari class PathCollection untuk membuat legend secara otomatis. Method ini akan mencoba menentukan jumlah entry yang akan ditampilkan dalam legend dan mengembalikan tuple dari handles dan labels. Kita kemudian dapat menggunakan tuple tersebut untuk membuat legend.

Contoh kode berikut menunjukkan bagaimana cara menggunakan method legend_elements:

N = 45
x, y = np.random.rand(2, N)
c = np.random.randint(1, 5, size=N)
s = np.random.randint(10, 220, size=N)

fig, ax = plt.subplots()

scatter = ax.scatter(x, y, c=c, s=s)

# Produce a legend with the unique colors from the scatter
legend1 = ax.legend(*scatter.legend_elements(),
 loc="lower left", title="Classes")
ax.add_artist(legend1)

# Produce a legend with a cross-section of sizes from the scatter
handles, labels = scatter.legend_elements(prop="sizes", alpha=0.6)
legend2 = ax.legend(handles, labels, loc="upper right", title="Sizes")

plt.show()

Dalam contoh ini, kita menggunakan method legend_elements untuk membuat legend secara otomatis. Kita juga dapat menggunakan beberapa argumen tambahan untuk menentukan jumlah entry yang akan ditampilkan dalam legend dan cara labelingnya.

Menggabungkan Plot dan Legend

Akhirnya, kita dapat menggabungkan plot dan legend dengan cara yang efektif. Berikut adalah contoh kode yang menunjukkan bagaimana cara melakukan hal itu:

import matplotlib.pyplot as plt

# Create a figure and axis
fig, ax = plt.subplots()

# Scatter plot with custom tick labels
xs = [1, 2, 3, 4]
ys = [10, 20, 30, 40]
labels = ["Jan", "Feb", "Mar", "Apr"]
plt.bar(xs, ys)
plt.xticks(xs, labels)

# Create a legend
string_label = "Feb"
label_index = labels.index(string_label)
xs_index = xs[label_index]
plt.annotate("foo-bar",
 (xs_index,4)) # These are the coordinates to position the label

ax.legend()

plt.show()

Dalam contoh ini, kita menggunakan beberapa fitur matplotlib untuk membuat plot dan legend. Kita juga dapat menggabungkan plot dan legend dengan cara yang efektif.

Semoga artikel ini membantu Anda dalam menggunakan matplotlib untuk membuat plot dan legend!