Lewati ke konten utama

Python Menengah untuk Data Sains: Matplotlib

Pelajari cara memvisualisasikan data nyata dengan fungsi-fungsi matplotlib.
Diperbarui 28 Sep 2026  · 11 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Kutipan Kursus: Python Menengah untuk Data Sains - Matplotlib

Di bawah ini adalah kutipan—video dan transkrip—dari bab pertama kursus Python Menengah untuk Data Sains. Di sini adalah bab lengkapnya, termasuk latihan interaktif.

Plot dasar dengan matplotlib

Halo, nama saya Filip, dan saya adalah data scientist di DataCamp. Dalam kursus Python tingkat menengah ini, Anda akan semakin meningkatkan keterampilan Python Anda untuk data sains. Anda akan belajar memvisualisasikan data dan menyimpan data dalam struktur data yang baru. Sepanjang jalan, Anda akan menguasai struktur kendali, yang Anda perlukan untuk menyesuaikan alur skrip dan algoritme Anda. Kita akan menutup bab ini dengan studi kasus, di mana Anda akan memadukan semua yang telah Anda pelajari untuk memecahkan sebuah masalah yang menarik.

Bab pertama ini membahas visualisasi data, yang merupakan bagian sangat penting dari analisis data. Pertama, Anda akan menggunakannya terus-menerus untuk mengeksplorasi dataset Anda. Semakin baik Anda memahami data Anda, semakin baik pula Anda dapat mengekstrak insight. Dan setelah Anda menemukan insight tersebut, lagi-lagi, Anda membutuhkan visualisasi agar dapat berbagi insight berharga itu dengan orang lain. Sebagai contoh, perhatikan plot indah ini.

Plot ini dibuat oleh profesor asal Swedia, Hans Rosling. Presentasinya tentang perkembangan global telah ditonton jutaan kali. Yang membuatnya begitu menarik adalah, dengan membuat plot yang indah, ia membiarkan data menceritakan kisahnya sendiri. Di sini kita melihat bagan gelembung, di mana setiap gelembung mewakili sebuah negara. Semakin besar gelembung, semakin besar pula populasi negara tersebut, jadi dua gelembung terbesar di sini adalah Tiongkok dan India.

Ada 2 sumbu. Sumbu horizontal menunjukkan PDB per kapita, dalam dolar AS. Sumbu vertikal menunjukkan harapan hidup. Kita jelas melihat bahwa orang hidup lebih lama di negara-negara dengan PDB per kapita yang lebih tinggi. Namun, ada perbedaan besar dalam harapan hidup antarnegara pada tingkat pendapatan yang sama.

Mengapa saya menceritakan semua ini? Karena pada akhir bab ini, Anda akan mampu membangun plot indah ini sendiri.

Ada banyak paket visualisasi di Python, tetapi induknya adalah matplotlib. Anda akan membutuhkan subpaketnya, pyplot. Secara konvensi, subpaket ini diimpor sebagai plt, seperti ini.

Untuk contoh pertama kita, mari coba mendapatkan wawasan tentang evolusi populasi dunia. Saya memiliki sebuah daftar tahun di sini, year, dan daftar populasi yang sesuai, dinyatakan dalam miliar, pop. Pada tahun 1970, misalnya, 3,7 miliar orang hidup di planet Bumi.

Untuk memplot data ini sebagai bagan garis, kita memanggil plt.plot() dan menggunakan dua daftar kita sebagai argumen. Argumen pertama sesuai dengan sumbu horizontal, dan yang kedua dengan sumbu vertikal. Anda mungkin mengira bahwa plot akan langsung muncul sekarang, tetapi Python cukup malas. Python akan menunggu fungsi show() untuk benar-benar menampilkan plot. Ini karena Anda mungkin ingin menambahkan beberapa elemen tambahan ke plot sebelum menampilkannya, seperti judul dan kustomisasi label. Saya akan membahasnya lebih lanjut nanti. Ingat saja ini: fungsi plot() memberi tahu Python apa yang harus diplot dan bagaimana cara memplotnya. show() benar-benar menampilkan plot.

Saat kita melihat plot kita, terlihat bahwa tahun memang ditampilkan pada sumbu horizontal, dan populasi pada sumbu vertikal. Ada empat titik data, dan Python menggambar garis di antaranya. Pada tahun 1950, populasi dunia sekitar 2,5 miliar. Pada tahun 2010, sekitar 7 miliar. Jadi populasi dunia hampir tiga kali lipat dalam enam puluh tahun, itu cukup mengkhawatirkan. Bagaimana jika populasi terus bertambah seperti itu? Akankah dunia menjadi kelebihan penduduk? Anda akan mengetahuinya dalam latihan.

Sekarang saya memperkenalkan jenis plot lain: scatter plot. Untuk membuatnya, kita dapat mulai dari kode sebelumnya. Kali ini, Anda mengubah fungsi plot menjadi scatter. Scatter plot yang dihasilkan hanya memplot semua titik data individual; Python tidak menghubungkan titik-titik tersebut dengan garis. Untuk banyak aplikasi, scatter plot sering kali lebih baik daripada line plot, jadi ingat baik-baik fungsi scatter ini. Anda juga bisa mengatakan bahwa ini adalah cara yang lebih “jujur” untuk memplot data Anda, karena Anda dapat dengan jelas melihat bahwa plot ini hanya didasarkan pada empat titik data.

Sekarang setelah kita membahas dasar-dasar matplotlib, giliran Anda untuk membuat plot yang keren!


# define a simple function
import matplotlib.pyplot as plt
year = [1950, 1970, 1990, 2010]
pop = [2.519, 3.692, 5.263, 6.972]
plt.plot(year, pop)
plt.show()

import matplotlib.pyplot as plt
year = [1950, 1970, 1990, 2010]
pop = [2.519, 3.692, 5.263, 6.972]
plt.scatter(year, pop)
plt.show()

Histogram

Dalam video ini, saya akan memperkenalkan histogram. Histogram adalah jenis visualisasi yang sangat berguna untuk menjelajahi data Anda. Histogram dapat membantu Anda mendapatkan gambaran tentang distribusi variabel. Untuk melihat cara kerjanya, bayangkan ada 12 nilai antara 0 dan 6. Saya menempatkannya sepanjang garis bilangan di sini. Untuk membuat histogram untuk nilai-nilai ini, Anda dapat membagi garis tersebut menjadi potongan-potongan yang sama, disebut bin. Misalkan Anda memilih 3 bin, masing-masing dengan lebar 2. Selanjutnya, Anda menghitung berapa banyak titik data yang berada di setiap bin. Ada 4 titik data di bin pertama, 6 di bin kedua, dan 2 di bin ketiga. Terakhir, Anda menggambar sebuah batang untuk setiap bin. Tinggi batang sesuai dengan jumlah titik data yang jatuh pada bin tersebut. Hasilnya adalah sebuah histogram, yang memberikan gambaran bagus tentang bagaimana 12 nilai itu terdistribusi. Sebagian besar nilai berada di tengah, tetapi ada lebih banyak nilai di bawah 2 dibandingkan nilai di atas 4.

Tentu saja, matplotlib juga dapat membuat histogram. Seperti sebelumnya, Anda harus mulai dengan mengimpor paket pyplot yang ada di dalam matplotlib. Selanjutnya, Anda dapat menggunakan fungsi hist(). Mari kita buka dokumentasinya. Ada banyak argumen yang dapat Anda tentukan, tetapi dua pertama di sini adalah yang paling penting. x harus berupa daftar nilai yang ingin Anda buatkan histogramnya. Anda dapat menggunakan argumen kedua, bins, untuk memberi tahu Python menjadi berapa bin data harus dibagi. Berdasarkan angka ini, hist() akan secara otomatis mencari batas yang sesuai untuk semua bin, dan menghitung berapa banyak nilai di masing-masing bin. Jika Anda tidak menentukan argumen bins, nilainya akan 10 secara default.

Jadi untuk menghasilkan histogram yang Anda lihat sebelumnya, mari mulai dengan membuat daftar berisi 12 nilai tersebut. Selanjutnya, Anda cukup memanggil hist() dan meneruskan daftar ini sebagai masukan, sehingga cocok dengan argumen x. Saya juga menentukan argumen bins bernilai 3, sehingga nilainya dibagi ke dalam tiga bin. Jika Anda akhirnya memanggil fungsi show, akan dihasilkan sebuah histogram yang bagus. Histogram sangat berguna untuk memberikan gambaran menyeluruh. Sebagai contoh, perhatikan apa yang disebut piramida penduduk ini. Distribusi usia ditampilkan, untuk laki-laki dan perempuan, di Uni Eropa. Perhatikan bahwa histogram diputar 90 derajat; bin sekarang menjadi horizontal. Bin terbesar untuk usia 40 hingga 44 tahun, di mana terdapat 20 juta laki-laki dan 20 juta perempuan. Mereka adalah yang disebut generasi baby boomer.

Angka-angka ini berasal dari tahun 2010. Menurut Anda, apa yang akan berubah pada tahun 2050? Mari kita lihat. Distribusinya lebih datar, dan generasi baby boomer telah menua. Sekilas, Anda dapat dengan mudah melihat bagaimana demografi akan berubah dari waktu ke waktu. Itulah kekuatan sesungguhnya dari histogram! Sekarang lanjutkan ke latihan untuk bereksperimen sendiri dengan histogram!


values = [0,0.6,1.4,1.6,2.2,2.5,2.6,3.2,3.5,3.9,4.2,6]
import matplotlib.pyplot as plt
plt.hist(values,bins=3)
plt.show()

Kustomisasi

Membuat sebuah plot adalah satu hal. Membuat plot yang tepat, yang menyampaikan pesan dengan sangat jelas, adalah tantangan sesungguhnya. Untuk setiap visualisasi, Anda memiliki banyak opsi. Pertama-tama, ada berbagai jenis plot. Dan untuk setiap plot, Anda dapat melakukan kustomisasi dalam jumlah tak terbatas. Anda dapat mengubah warna, bentuk, label, sumbu, dan seterusnya. Pilihannya bergantung pada, satu, data, dan dua, cerita yang ingin Anda sampaikan dengan data tersebut. Karena ada begitu banyak kemungkinan kustomisasi, cara terbaik untuk mempelajarinya adalah melalui contoh.

Mari mulai dengan kode dalam skrip ini untuk membangun line plot sederhana. Ini mirip dengan line plot yang kita buat di video pertama, tetapi kali ini daftar year dan pop berisi lebih banyak data, termasuk proyeksi hingga tahun 2100, yang diperkirakan oleh Perserikatan Bangsa-Bangsa. Jika kita menjalankan skrip ini, kita sudah mendapatkan plot yang cukup bagus: plot tersebut menunjukkan bahwa ledakan populasi yang sedang terjadi akan melambat pada akhir abad ini.

Namun beberapa hal dapat diperbaiki. Pertama, harus lebih jelas data apa yang kita tampilkan, terutama bagi orang yang melihat grafik untuk pertama kalinya. Kedua, plot benar-benar perlu menarik perhatian pada ledakan populasi. Hal pertama yang selalu perlu Anda lakukan adalah memberi label pada sumbu. Mari lakukan ini dengan menambahkan fungsi xlabel() dan ylabel() . Sebagai masukan, kita meneruskan string yang harus ditempatkan di sepanjang sumbu. Pastikan untuk memanggil fungsi-fungsi ini sebelum memanggil metode show(), jika tidak kustomisasi Anda tidak akan ditampilkan. Jika kita menjalankan skrip lagi, kali ini sumbu-sumbu diberi anotasi. Kita juga akan menambahkan judul ke plot kita, dengan fungsi title. Kita meneruskan judulnya, 'World Population Projections', sebagai argumen. Dan itulah judulnya!

Jadi, menggunakan xlabel, ylabel dan title, kita dapat memberi pembaca lebih banyak informasi tentang data pada plot: sekarang mereka setidaknya dapat mengetahui topik plot tersebut. Untuk menempatkan pertumbuhan populasi dalam konteks, saya ingin sumbu-y dimulai dari nol. Anda dapat melakukan ini dengan fungsi yticks(). Masukan pertama adalah sebuah daftar, dalam contoh ini dengan angka nol hingga sepuluh, dengan interval 2. Jika kita menjalankan ini, plot akan berubah: kurvanya bergeser ke atas. Sekarang jelas bahwa bahkan pada tahun 1950, sudah ada sekitar 2,5 miliar orang di planet ini.

Selanjutnya, untuk memperjelas bahwa kita berbicara dalam satuan miliar, kita dapat menambahkan argumen kedua ke fungsi yticks(), yaitu daftar dengan nama tampilan untuk setiap tick. Daftar ini harus memiliki panjang yang sama dengan daftar pertama. Tick 0 diberi nama 0, tick 2 diberi nama 2B, tick 4 diberi nama 4B, dan seterusnya. Omong-omong, B di sini berarti Billion. Jika kita menjalankan versi skrip ini, labelnya akan berubah sesuai, bagus.

Terakhir, mari tambahkan lebih banyak data historis untuk menonjolkan ledakan populasi dalam 60 tahun terakhir. Di Wikipedia, saya menemukan data populasi dunia untuk tahun 1800, 1850, dan 1900. Saya bisa menuliskannya dalam bentuk daftar dan menambahkannya ke daftar pop dan year dengan tanda plus. Jika sekarang saya menjalankan skrip sekali lagi, tiga titik data ditambahkan ke grafik, memberikan gambaran yang lebih lengkap. Begitulah cara Anda mengubah line plot rata-rata menjadi visual yang memiliki cerita jelas untuk disampaikan! Sekarang giliran Anda. Lanjutkan ke latihan, kustomisasi bagan perkembangan dunia secara bertahap dan jadilah Hans Rosling berikutnya!


import matplotlib.pyplot as plt
import pandas as pd
year = list(range(1950, 2101))
pop = [2.53,2.57,2.62,2.67,2.71,2.76,2.81,2.86,2.92,2.97,3.03,3.08,3.14,3.2,3.26,3.33,3.4,3.47,3.54,3.62,3.69,3.77,3.84,3.92,4.,4.07,4.15,4.22,4.3,4.37,4.45,4.53,4.61,4.69,4.78,4.86,4.95,5.05,5.14,5.23,5.32,5.41,5.49,5.58,5.66,5.74,5.82,5.9,5.98,6.05,6.13,6.2,6.28,6.36,6.44,6.51,6.59,6.67,6.75,6.83,6.92,7.,7.08,7.16,7.24,7.32,7.4,7.48,7.56,7.64,7.72,7.79,7.87,7.94,8.01,8.08,8.15,8.22,8.29,8.36,8.42,8.49,8.56,8.62,8.68,8.74,8.8,8.86,8.92,8.98,9.04,9.09,9.15,9.2,9.26,9.31,9.36,9.41,9.46,9.5,9.55,9.6,9.64,9.68,9.73,9.77,9.81,9.85,9.88,9.92,9.96,9.99,10.03,10.06,10.09,10.13,10.16,10.19,10.22,10.25,10.28,10.31,10.33,10.36,10.38,10.41,10.43,10.46,10.48,10.5,10.52,10.55,10.57,10.59,10.61,10.63,10.65,10.66,10.68,10.7,10.72,10.73,10.75,10.77,10.78,10.79,10.81,10.82,10.83,10.84,10.85]
pop = [1,1.262,1.650] + pop
year = [1800,1850,1900] + year
plt.plot(year, pop)
plt.xlabel('Year')
plt.ylabel('Population')
plt.title('World Population Projections')
plt.yticks([0,2,4,6,8,10],['0','2B','4B','6B','8B','10B'])
plt.show()
Topik
Visualisasi Data
Terkait

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat SelengkapnyaLihat Selengkapnya