Matplotlib adalah salah satu library yang paling populer digunakan dalam pengembangan visualisasi data. Dalam beberapa kasus, Anda mungkin ingin menambahkan label atau annotation ke plot untuk memudahkan interpretasi data.
Dalam artikel ini, kita akan membahas beberapa contoh bagaimana cara menambahkan label dan annotation ke plot menggunakan Matplotlib.
Contoh 1: Menambahkan Label ke Plot
Kita dapat menambahkan label ke plot dengan menggunakan fungsi annotate()
dari Matplotlib. Fungsi ini memungkinkan kita untuk menentukan koordinat x dan y, serta teks yang akan ditampilkan sebagai label.
Berikut contoh kode:
import matplotlib.pyplot as plt
import numpy as np
# Generate sample data for this example
xs = np.random.randint(0, 10, size=10)
ys = np.random.randint(-5, 5, size=10)
# Plot the points
plt.scatter(xs, ys)
# Zip joins x and y coordinates in pairs
for x, y in zip(xs, ys):
label = f"({x},{y})"
plt.annotate(label, (x, y), textcoords="offset points", xytext=(0, 10), ha='center')
Dalam contoh di atas, kita menggunakan fungsi annotate()
untuk menambahkan label ke setiap titik pada plot. Label ini berisi koordinat x dan y dari titik tersebut.
Contoh 2: Menambahkan Text ke Axes
Kita juga dapat menambahkan text ke axes dengan menggunakan fungsi annotate()
dari Matplotlib. Fungsi ini memungkinkan kita untuk menentukan teks yang akan ditampilkan, serta koordinat x dan y untuk posisi text.
Berikut contoh kode:
import matplotlib.pyplot as plt
# Generate sample data for this example
x = np.linspace(0.0, 100, 50)
y = np.random.uniform(low=0, high=10, size=50)
# Get references to the 2 axes with plt.subplots()
fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.bar(x, y)
# Add text to the axes on the left only
ax1.annotate('Some text in axes ax1', (40, 8), color='red')
ax2.bar(x, y)
# Add text to the other axes (on the right)
ax2.annotate('More text in axes ax2', (40, 8), color='black', size=16)
Dalam contoh di atas, kita menggunakan fungsi annotate()
untuk menambahkan text ke axes. Text ini berisi koordinat x dan y untuk posisi text.
Contoh 3: Menambahkan Label ke Plot dengan String Tick Labels
Kita juga dapat menambahkan label ke plot dengan menggunakan string tick labels. Dalam contoh di atas, kita menggunakan fungsi xticks()
dari Matplotlib untuk memilih tick labels yang akan digunakan.
Berikut contoh kode:
import matplotlib.pyplot as plt
# Generate sample data for this example
xs = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
ys = np.random.normal(loc=3.0, size=12)
labels = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sept', 'oct', 'nov', 'dec']
# Plot
plt.bar(xs, ys)
# Apply custom tick labels
plt.xticks(xs, labels)
# This is the x-axis label you want to write the text for
string_label = "feb"
# Figure out which x-axis tick corresponds to that
label_index = labels.index(string_label)
xs_index = xs[label_index]
# Use xs_index to position the text
plt.annotate("foo-bar", (xs_index, 4))
Dalam contoh di atas, kita menggunakan fungsi annotate()
untuk menambahkan label ke plot. Label ini berisi koordinat x dan y untuk posisi text.
Contoh 4: Menambahkan Label ke Bubble Plot
Kita juga dapat menambahkan label ke bubble plot dengan menggunakan loop dan fungsi text()
dari Matplotlib.
Berikut contoh kode:
import pandas as pd
import matplotlib.pylab as plt
import seaborn as sns
# Create example dataframe
df = pd.DataFrame({
'x': [1, 1.1, 1.2, 2, 5],
'y': [5, 15, 25, 35, 45],
'label': ['A', 'B', 'C', 'D', 'E']
})
# Plot the data
sns.scatterplot(x='x', y='y', hue='label', data=df)
# Add labels to the plot
for i in range(len(df)):
plt.text(df.iloc[i]['x'], df.iloc[i]['y'], str(df.iloc[i]['label']), ha='center')
Dalam contoh di atas, kita menggunakan loop dan fungsi text()
untuk menambahkan label ke bubble plot. Label ini berisi koordinat x dan y untuk posisi text.
Dengan demikian, dalam artikel ini kita telah membahas beberapa contoh bagaimana cara menambahkan label dan annotation ke plot menggunakan Matplotlib. Kita dapat menggunakan fungsi annotate()
untuk menambahkan label ke plot, serta loop dan fungsi text()
untuk menambahkan label ke bubble plot.