Kursus
Dalam artikel ini, saya akan mengajak Anda menjelajahi plot batang di Python menggunakan pustaka paling dikenal—Matplotlib, Seaborn, Plotly, Plotnine, dan Pandas. Anda dapat membandingkan visualnya sekilas dan memilih pustaka yang paling Anda sukai. Untuk setiap metode, saya akan mulai dari dasar pembuatan plot batang sederhana, lalu secara bertahap beralih ke teknik kustomisasi.
Saya akan berusaha selengkap dan sejelas mungkin, tetapi ingat bahwa dalam analisis data dan data science, plot batang hanyalah salah satu komponen. Untuk gambaran luas dan latihan dengan dataset nyata, memperoleh sertifikasi yang banyak dicari, dan memulai karier di bidang ini, daftar di Associate Data Scientist in Python career track kami hari ini.
Cara Membuat Plot Batang di Python
Mari kita lihat cara membuat dan menyesuaikan plot batang menggunakan beberapa pustaka Python paling populer. Setiap pustaka menawarkan fitur unik dan tingkat kustomisasi yang berbeda.
Membuat bagan batang dengan Matplotlib
Saya akan mulai dengan Matplotlib, pustaka plotting dasar di Python yang memiliki banyak opsi kustomisasi.
Plot batang dasar
Untuk memulai dengan Matplotlib, Anda perlu mengimpor pustaka yang diperlukan. Modul pyplot dari Matplotlib menyediakan fungsis untuk membuat plot. Pada contoh ini, kita akan menggunakan data contoh yang menunjukkan jumlah orang yang menyukai berbagai pustaka visualisasi. Di sini, daftar library berisi nama pustaka yang muncul sebagai label pada sumbu x, dan daftar chosen_by berisi jumlah penggemar yang ditampilkan sebagai tinggi batang pada sumbu y.
import matplotlib.pyplot as plt
# Number of preferences for different libraries
library = ['Matplotlib', 'Seaborn', 'Plotly', 'Plotnine']
chosen_by = [2500, 1800, 3000, 2200]
Membuat plot batang vertikal dilakukan dengan memanggil fungsi plt.bar() dengan nama pustaka dan data preferensi. Saya memilih warna skyblue. Fungsi plt.xlabel(), plt.ylabel(), dan plt.title() menambahkan label pada sumbu x dan sumbu y serta menetapkan judul plot. Terakhir, plt.show() menampilkan plot.
# Vertical Bar Plot
plt.bar(library, chosen_by, color='skyblue')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.title('Which Visualization Library Do People Prefer?')
plt.show()

Serupa, Anda dapat membuat plot batang horizontal menggunakan fungsi plt.barh(). Untuk ini, saya akan menggunakan warna hijau muda untuk batang.
# Horizontal Bar Plot
plt.barh(library, chosen_by, color='lightgreen')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.title('Which Visualization Library Do People Prefer?')
plt.show()

Kustomisasi lanjutan
Matplotlib memungkinkan beragam kustomisasi, seperti menambahkan anotasi dan menyesuaikan label sumbu, judul, serta legenda. Misalnya, Anda dapat menambahkan anotasi pada setiap batang menggunakan fungsi plt.text(), yang menempatkan teks pada koordinat yang ditentukan.
plt.bar(library, chosen_by, color='skyblue')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.title('Which Visualization Library Do People Prefer?')
# Adding annotations
for i, value in enumerate(chosen_by):
plt.text(i, value + 5, str(value), ha='center')
plt.show()

Pada kode di atas, plt.text() digunakan untuk menampilkan jumlah penggemar di atas setiap batang. Fungsi enumerate() menyediakan indeks dan nilai tiap batang, sehingga teks diposisikan dengan benar.
Plot batang berkelompok dan bertumpuk
Untuk membuat plot batang berkelompok dan bertumpuk dengan Matplotlib, Anda dapat menggunakan parameter tambahan untuk merepresentasikan beberapa kategori, seperti wilayah atau demografi yang berbeda. Misalkan Anda memiliki data popularitas pustaka visualisasi di berbagai wilayah. Untuk plot batang berkelompok, Anda mendefinisikan dataset terpisah untuk tiap wilayah dan menggunakan bar_width untuk mengatur jarak dan perataan batang, menempatkan tiap kelompok berdampingan agar mudah dibandingkan.
import numpy as np
# Define library names
library = ['Matplotlib', 'Seaborn', 'Plotly', 'Plotnine']
# Number of Enthusiasts for different regions
enthusiasts_north = [2000, 1500, 2500, 2000]
enthusiasts_south = [1500, 1300, 2000, 1800]
bar_width = 0.35
x = np.arange(len(library))
# Grouped Bar Plot
plt.bar(x - bar_width/2, enthusiasts_north, bar_width, label='North Region', color='skyblue')
plt.bar(x + bar_width/2, enthusiasts_south, bar_width, label='South Region', color='lightgreen')
# Adding labels and title
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.title('Regional Preferences for Visualization Libraries (Grouped)')
plt.xticks(x, library)
plt.legend(title='Regions')
plt.show()

Pada contoh ini, baris x = np.arange(len(library)) membuat array posisi untuk batang. Fungsi plt.bar() digunakan dua kali untuk membuat batang untuk tiap wilayah, dan fungsi plt.xticks() menetapkan label pada sumbu x. Fungsi plt.legend() menampilkan legenda untuk membedakan wilayah.
Untuk plot batang bertumpuk, Anda dapat menggunakan parameter bottom untuk menumpuk satu dataset di atas dataset lainnya. Berikut cara memvisualisasikan jumlah penggemar dari berbagai wilayah yang ditumpuk untuk tiap pustaka.
# Define library names
library = ['Matplotlib', 'Seaborn', 'Plotly', 'Plotnine']
# Number of Enthusiasts for different regions
enthusiasts_north = [2000, 1500, 2500, 2000]
enthusiasts_south = [1500, 1300, 2000, 1800]
x = np.arange(len(library))
# Stacked Bar Plot
plt.bar(x, enthusiasts_north, label='North Region', color='skyblue')
plt.bar(x, enthusiasts_south, bottom=enthusiasts_north, label='South Region', color='lightcoral')
# Adding labels and title
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.title('Regional Preferences for Visualization Libraries (Stacked)')
plt.legend()
plt.show()

Pada plot batang bertumpuk ini, enthusiasts_south merepresentasikan data untuk penggemar di wilayah Selatan, sementara enthusiasts_north digunakan sebagai data dasar untuk wilayah Utara. Fungsi plt.bra() dipanggil sekali untuk membuat batang wilayah Utara, lalu dipanggil lagi untuk menumpuk batang wilayah Selatan di atasnya.
Anda dapat mempelajari lebih lanjut di kursus kami Introduction to Data Visualization with Matplotlib untuk penjelasan lebih rinci tentang penggunaan pustaka Matplotlib di Python. Ada juga Matplotlib Cheat Sheet kami, yang merangkum prosesnya dalam enam langkah dasar.
Membuat plot batang dengan Seaborn
Seaborn adalah pustaka visualisasi yang dibangun di atas Matplotlib dan memudahkan pembuatan plot batang yang sangat menarik.
Plot batang dasar
Fungsi barplot() milik Seaborn memudahkan pembuatan plot batang dasar dengan kode minimal. Pertama, impor pustaka Seaborn dan buat sebuah kamus.
import seaborn as sns
data = {'Library': library, 'Chosen by': chosen_by}
Lalu, gunakan fungsi sns.barplot() untuk membuat plot batang, dengan menentukan variabel x dan y serta sumber data. Di sini, saya menggunakan palet warna viridis.
sns.barplot(x='Library', y='Chosen by', data=data, palette='viridis')
plt.title('Which Visualization Library Do People Prefer?')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.show()

Anda bisa memilih untuk tidak menambahkan nilai pada palette dan akan mendapatkan warna seragam pada bagan, atau, lebih baik lagi, menetapkan satu warna untuk plot batang. Dalam kasus ini, saya akan menggunakan hex code:
sns.barplot(x='Library', y='Chosen by', data=data, color=’#5EB1FF’)
plt.title('Which Visualization Library Do People Prefer?')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.show()

Kustomisasi lanjutan
Tentunya, Seaborn juga memungkinkan berbagai opsi kustomisasi, termasuk warna dan anotasi. Misalnya, Anda dapat menambahkan anotasi pada plot batang serupa seperti yang dilakukan di Matplotlib.
# Customized Bar Plot
sns.barplot(x='Library', y='Chosen by', data=data, palette='viridis')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.title('Which Visualization Library Do People Prefer?')
# Adding annotations
for i, value in enumerate(chosen_by):
plt.text(i, value + 5, str(value), ha='center')
plt.show()

Pada contoh ini, parameter palette='viridis' mengubah palet warna batang, dan fungsi plt.text() menambahkan anotasi pada setiap batang.
Anda dapat melihat Introduction to Data Visualization with Seaborn untuk detail yang jauh lebih lengkap. Agar bagan batang Seaborn Anda terlihat makin bagus, gunakan Seaborn Color Palette: Quick Guide to Picking Colors untuk inspirasi ide yang baik.
Membuat plot batang dengan Plotly
Berikutnya adalah Plotly, pustaka yang dikenal untuk membuat visualisasi interaktif dan dinamis, termasuk plot batang.
Plot batang dasar
Membuat plot batang dasar dengan Plotly melibatkan penggunaan modul graph_objects. Kita dapat mengimpor modul yang diperlukan dan membuat plot batang menggunakan warna biru langit untuk batang.
import plotly.graph_objects as go
fig = go.Figure(go.Bar(x=library, y=chosen_by, marker_color='skyblue'))
fig.update_layout(title='Which Visualization Library Do People Prefer?', xaxis_title='Visualization Library', yaxis_title='Number of Enthusiasts')
fig.show()

Kustomisasi lanjutan
Plotly menyediakan cara untuk meningkatkan interaktivitas dan tampilan plot batang. Misalnya, Anda dapat menambahkan anotasi pada batang menggunakan fungsi fig.add_annotation().
fig = go.Figure(go.Bar(x=library, y=chosen_by, marker_color='skyblue'))
fig.update_layout(title='Which Visualization Library Do People Prefer?', xaxis_title='Visualization Library', yaxis_title='Number of Enthusiasts')
# Adding annotations
for i, value in enumerate(chosen_by):
fig.add_annotation(x=library[i], y=value, text=str(value), showarrow=False, yshift=10)
fig.show()

Plot batang dinamis dan interaktif
Plotly dapat membuat plot batang dinamis yang diperbarui secara real-time, menjadikannya ideal untuk dasbor. Menggunakan Plotly Express, antarmuka tingkat tinggi untuk Plotly, Anda dapat membuat plot batang interaktif dengan kode minimal.
import plotly.express as px
# Using a sample dataset from Plotly
df = px.data.gapminder().query("year == 2007")
fig = px.bar(df, x='continent', y='pop', color='continent', hover_name='country', title='Population by Continent in 2007')
fig.show()

Pada contoh ini, fungsi px.data.gapminder() memuat dataset contoh dari Plotly. Fungsi px.bar() membuat plot batang interaktif dengan variabel x dan y, warna, nama hover, dan judul yang ditentukan. Kami memiliki kursus terperinci di DataCammp jika Anda ingin melihat lebih jauh: Introduction to Data Visualization with Plotly.
Membuat plot batang dengan Plotnine
Plotnine adalah implementasi grammar of graphics di Python, terinspirasi oleh ggplot2 di R. Pustaka ini memungkinkan cara deklaratif untuk membuat plot kompleks dengan mengombinasikan elemen plot yang berbeda.
Plot batang dasar
Untuk memulai dengan Plotnine, impor pustaka yang diperlukan dan buat DataFrame. Lalu, definisikan objek ggplot, tambahkan layer geom_bar, dan tentukan estetika.
from plotnine import ggplot, aes, geom_bar, labs
import pandas as pd
# Number of preferences for different libraries
data = pd.DataFrame({'Library': ['Matplotlib', 'Seaborn', 'Plotly', 'Plotnine'],
'Chosen by': [2500, 1800, 3000, 2200]})
# Basic Bar Plot
ggplot(data, aes(x='Library', y='Chosen by')) + geom_bar(stat='identity', fill='skyblue') + labs(title='Which Visualization Library Do People Prefer?', x='Visualization Library', y='Number of Enthusiasts')

Pada contoh ini, aes(x='Library', y='Chosen by') menetapkan estetika x dan y untuk plot. Bagian geom_bar(stat='identity', fill='skyblue') membuat plot batang dengan warna isi biru langit.
Kustomisasi lanjutan
Anda dapat melakukan kustomisasi menggunakan pendekatan berlapis Plotnine. Anda bisa menambahkan anotasi, label sumbu, judul, dan legenda.
from plotnine import ggplot, aes, geom_bar, geom_text, labs
# Creating our Pandas DataFrame
data = pd.DataFrame({'Library': ['Matplotlib', 'Seaborn', 'Plotly', 'Plotnine'],
'Chosen by': [2500, 1800, 3000, 2200]})
# Basic Bar Plot with labels
(ggplot(data, aes(x='Library', y='Chosen by'))
+ geom_bar(stat='identity', fill='skyblue')
+ geom_text(aes(label='Chosen by'), va='bottom', size=10, nudge_y=5) # Adds labels on top of bars
+ labs(title='Which Visualization Library Do People Prefer?', x='Visualization Library', y='Number of Enthusiasts'))

Plot batang berkelompok dan bertumpuk
Plotnine juga mendukung plot batang berkelompok dan bertumpuk. Untuk plot batang berkelompok, Anda perlu terlebih dahulu mendefinisikan variabel kategorikal untuk pengelompokan.
# Number of preferences for different libraries in different regions
data = pd.DataFrame({'Library': ['Matplotlib', 'Plotly', 'Plotnine', 'Seaborn'] * 2,
'Chosen by': [2000, 1500, 2500, 2000, 1500, 1300, 2000, 1800],
'Region': ['North', 'North', 'North', 'North', 'South', 'South', 'South', 'South']})
# Grouped Bar Plot
(ggplot(data, aes(x='Library', y='Chosen by', fill='Region'))
+ geom_bar(stat='identity', position='dodge')
+ labs(title='Regional Preferences for Visualization Libraries (Grouped)', x='Visualization Library', y='Number of Enthusiasts'))

Untuk plot batang bertumpuk, Anda dapat menggunakan position = 'stack'.
# Stacked Bar Plot
(ggplot(data, aes(x='Library', y='Chosen by', fill='Region'))
+ geom_bar(stat='identity', position='stack')
+ labs(title='Regional Preferences for Visualization Libraries (Stacked)', x='Visualization Library', y='Number of Enthusiasts'))

Perhatikan pada contoh ini, position = 'dodge' membuat batang berkelompok, sedangkan position = 'stack' menumpuk batang.
Membuat plot batang dengan Pandas
Terakhir adalah Pandas. Pandas menyediakan cara praktis untuk membuat plot batang langsung dari DataFrame, sehingga menjadi opsi cepat dan mudah untuk plot dasar.
Plot batang dasar
Untuk membuat plot batang di Pandas, Anda dapat menggunakan fungsi plot.bar() pada sebuah DataFrame.
import pandas as pd
data = pd.DataFrame({'Library': ['Matplotlib', 'Seaborn', 'Plotly', 'Plotnine'],
'Chosen by': [2500, 1800, 3000, 2200]})
Kemudian, buat plot batang menggunakan plot.bar().
# Basic Bar Plot
data.plot.bar(x='Library', y='Chosen by', color='skyblue', title='Which Visualization Library Do People Prefer?')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.show()

Kustomisasi lanjutan
Pandas memungkinkan kustomisasi plot batang melalui parameter tambahan dan integrasi dengan Matplotlib.
# Customized Bar Plot
ax = data.plot.bar(x='Library', y='Chosen by', color='skyblue', title='Which Visualization Library Do People Prefer?')
ax.set_xlabel('Visualization Library')
ax.set_ylabel('Number of Enthusiasts')
# Adding annotations
for i in ax.containers:
ax.bar_label(i, label_type='edge')
plt.show()

Pada contoh ini, ax.bar_label(i, label_type='edge') menambahkan anotasi pada batang, menampilkan angka di atas setiap batang.
Plot batang berkelompok dan bertumpuk
Membuat plot batang berkelompok dan bertumpuk di Pandas sangatlah mudah. Untuk plot batang berkelompok, Anda perlu mempivot DataFrame agar memiliki kolom terpisah untuk tiap kelompok.
# Number of preferences for different libraries in different regions
data = pd.DataFrame({'Library': ['Matplotlib', 'Seaborn', 'Plotly', 'Plotnine'],
'North Region': [2000, 1500, 2500, 2000],
'South Region': [1500, 1300, 2000, 1800]})
# Grouped Bar Plot
data.plot.bar(x='Library', y=['North Region', 'South Region'], title='Regional Preferences for Visualization Libraries (Grouped)')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.show()

Untuk plot batang bertumpuk, gunakan stacked=True.
# Stacked Bar Plot
data.plot.bar(x='Library', y=['North Region', 'South Region'], stacked=True, title='Regional Preferences for Visualization Libraries (Stacked)')
plt.xlabel('Visualization Library')
plt.ylabel('Number of Enthusiasts')
plt.show()

Praktik Terbaik untuk Merancang Plot Batang Python yang Efektif
Membuat plot batang itu mudah, tetapi merancang plot batang yang efektif dan informatif memerlukan perhatian pada detail. Pedoman berikut akan membantu Anda membuat plot batang yang secara efektif menyampaikan cerita data Anda.
- Menghindari Kesalahan Umum: Saat merancang plot batang, hindari memuat terlalu banyak informasi agar tetap jelas dan efektif. Fokus pada hal-hal yang esensial untuk mencegah kekacauan. Gunakan skala yang konsisten pada sumbu. Pastikan sumbu dimulai dari nol agar tidak menyesatkan pembaca dengan perbedaan yang terkesan berlebihan.
- Memilih Warna dan Sorotan: Pilih warna yang menambah makna pada data Anda, seperti merah untuk nilai negatif atau hijau untuk nilai positif. Pertahankan skema warna yang konsisten di plot terkait untuk membantu pembaca mengikuti alur. Gunakan warna untuk menyoroti wawasan penting.
- Mengurutkan Batang untuk Kejelasan Lebih Baik: Susun batang secara logis berdasarkan konteks data, seperti kronologis untuk data berbasis waktu, atau urutan menurun/menaik untuk menekankan tren. Kelompokkan batang yang terkait dan gunakan warna atau jarak untuk memisahkan kelompok.
Kesimpulan
Menguasai pembuatan dan kustomisasi plot batang adalah keterampilan penting bagi setiap profesional data. Dengan mengikuti pedoman dan praktik terbaik yang diuraikan dalam artikel ini, Anda dapat membuat plot batang yang jelas, informatif, dan menarik secara visual untuk menyampaikan wawasan data secara efektif. Ini akan membantu Anda mempresentasikan data dengan lebih baik dan mengambil keputusan yang lebih tepat.
Jika Anda ingin terus melatih kemampuan visualisasi data Python, lihat kursus Intro to Python for Data Science kami, yang menyediakan titik awal bagi pemula, atau lihat juga Python Programming skill track kami yang menawarkan jalur pembelajaran komprehensif untuk menguasai Python.
Profesional data dan penulis berpengalaman yang bersemangat memberdayakan calon ahli di bidang data.
FAQ Plot Batang Python
Apa itu plot batang Python, dan mengapa berguna?
Plot batang merepresentasikan data kategorikal dengan batang persegi panjang, di mana panjang atau tinggi batang sesuai dengan nilai kategorinya. Ini berguna untuk membandingkan kategori, memvisualisasikan distribusi, serta menemukan tren atau outlier.
Bagaimana saya memilih antara plot batang vertikal dan horizontal di Python?
Gunakan plot batang vertikal untuk label yang pendek atau mudah dibaca, sementara pilih plot batang horizontal untuk label yang lebih panjang atau kategori yang banyak agar terhindar dari kekacauan.
Bagaimana cara menyesuaikan warna batang pada plot saya?
Anda dapat menyesuaikan warna batang untuk membuat plot lebih menarik secara visual atau menyesuaikannya dengan skema warna tertentu. Di Matplotlib, gunakan parameter color:
plt.bar(categories, values, color=['red', 'green', 'blue'])
plt.show()
Bagaimana saya dapat menggunakan Python untuk mengurutkan batang dalam plot batang saya?
Mengurutkan batang dapat membantu menyoroti kategori yang paling atau paling tidak signifikan. Anda dapat mengurutkan data sebelum memplot:
data = {'Category': ['A', 'B', 'C'], 'Value': [4, 7, 1]}
df = pd.DataFrame(data).sort_values(by='Value', ascending=False)
plt.bar(df['Category'], df['Value'])
plt.show()Bisakah saya membuat plot batang Python yang interaktif dengan Plotly?
Ya, Plotly memungkinkan Anda membuat plot batang interaktif. Berikut contoh menggunakan Plotly Express:
import plotly.express as px
data = {'Category': ['A', 'B', 'C'], 'Value': [4, 7, 1]}
fig = px.bar(data, x='Category', y='Value', title='Interactive Bar Plot')
fig.show()
