Menggunakan Seaborn untuk Membuat Plot dengan Marker Tanpa Isian

Menggunakan Seaborn untuk Membuat Plot dengan Marker Tanpa Isian

Sebanyak apa pun kemampuan yang ditawarkan oleh Seaborn dan Pandas, terkadang kita perlu menemukan cara lebih sederhana untuk membuat plot. Dalam artikel ini, kita akan membahas cara menggunakan Seaborn untuk membuat plot dengan marker tanpa isian.

Cara Menggunakan FacetGrid

Sebagai contoh pertama, mari kita lihat bagaimana cara menggunakan FacetGrid dari Seaborn untuk membuat plot seperti di atas. Pertama-tama, kita perlu mengimport module Seaborn dan Pandas.

import seaborn as sns
import pandas as pd

Kemudian, kita dapat membuat data yang kita inginkan. Dalam contoh ini, kita akan menggunakan data yang terdiri dari beberapa baris dengan koordinat x dan y, serta kategori cat.

df = pd.DataFrame({'x': [3, 2, 5, 2, 1, 0],
 'y': [1, 1, 2, 3, 0, 2],
 'cat': ['a', 'a', 'a', 'b', 'b', 'b']})

Selanjutnya, kita dapat membuat objek FacetGrid dengan parameter data, hue, dan height. Dalam contoh ini, kita akan menggunakan data dari dataframe df, dengan kategori cat sebagai hue, serta tinggi plot sebesar 4.

g = sns.FacetGrid(df, hue="cat", height=4)

Kemudian, kita dapat mengmapkan fungsi scatter plot ke objek FacetGrid dengan parameter x, y, dan facecolor. Dalam contoh ini, kita akan menggunakan facecolor sebagai "none" untuk membuat marker tanpa isian.

g.map(plt.scatter, "x", "y", facecolors="none")

Akhirnya, kita dapat menambahkan legend ke plot dengan fungsi add_legend.

g.add_legend()

Cara Menggunakan Matplotlib

Jika menggunakan Seaborn memang membuat code menjadi lebih rumit, maka kita dapat menggunakan Matplotlib secara langsung untuk membuat plot. Dalam contoh ini, kita akan membuat plot yang mirip dengan sebelumnya.

import matplotlib.pyplot as plt

df = pd.DataFrame({'x': [3, 2, 5, 2, 1, 0],
 'y': [1, 1, 2, 3, 0, 2],
 'cat': ['a', 'a', 'a', 'b', 'b', 'b']})

fig, ax = plt.subplots()
m_colors = ["blue", "tab:orange", "red", "green"]

for (cat, group), col in zip(df.groupby("cat"), m_colors):
 ax.scatter(group.x, group.y, edgecolors=col, facecolors="none", alpha=0.7, label=cat)

ax.legend(title="empty circles")
plt.show()

Cara Baru dengan Seaborn

Baru-baru ini, Seaborn juga menawarkan cara baru untuk membuat plot dengan marker tanpa isian. Dalam contoh ini, kita akan menggunakan fungsi jointplot dari Seaborn.

penguins = sns.load_dataset("penguins")

colormap = {"Adelie": "purple", "Chinstrap": "orange", "Gentoo": "green"}

sns.jointplot(
 data=penguins,
 x="bill_length_mm",
 y="bill_depth_mm",
 hue="species",
 palette=colormap,
 ec=penguins["species"].map(colormap),
 fc="none"
)

Dalam artikel ini, kita telah melihat beberapa cara untuk membuat plot dengan marker tanpa isian menggunakan Seaborn. Cara-cara tersebut termasuk menggunakan FacetGrid, Matplotlib secara langsung, serta cara baru dengan fungsi jointplot.

Leave a comment