Sunday, June 10, 2018

Visualisasi Matplotlib - Plot Line Sederhana

Visualisasi grafis pada data scientist sangatlah penting dan jika kita bekerja dengan Python maka sudah dapat dipastikan untuk memvisualisasi data digunakan library Matplotlib. Oleh karena itu kali ini kita akan belajar penggunaan matplotlib tingkat dasar (tenang saya juga pemula....😅).

Untuk coding full menggunakan Jupyter Notebook bisa di download di sini  https://drive.google.com/open?id=1AfmlgAEZbmDodg_08F8X5gVpP5VKFKbA

Plot Garis Sederhana (Simple Plot Lines)
Mungkin yang paling sederhana dari semua plot adalah visualisasi dari satu fungsi y = f (x). Di sini kita membuat plot sederhana dari jenis ini. Kita akan mulai dengan menyiapkan notebook untuk merencanakan dan mengimpor paket yang akan kita gunakan:

%matplotlib inline
import matplotlib.pyplot as plt
plt.style.use('seaborn-whitegrid')
import numpy as np

Untuk semua plot Matplotlib, kita mulai dengan membuat figur dan sumbu. Dalam bentuk yang paling sederhana, figur dan sumbu dapat dibuat sebagai berikut:

fig = plt.figure()
ax = plt.axes()
Di Matplotlib, gambar (contoh kelas plt.Figure) dapat dianggap sebagai wadah tunggal yang berisi semua objek yang mewakili sumbu, grafik, teks, dan label. Sumbu (contoh kelas plt.Axes) adalah apa yang kita lihat di atas: kotak pembatas dengan titik dan label, yang pada akhirnya akan berisi elemen plot yang membentuk visualisasi. Sepanjang buku ini, kita umumnya akan menggunakan nama variabel fig untuk merujuk ke contoh gambar, dan ax untuk merujuk ke instance sumbu atau grup instance sumbu.

Setelah kami membuat axes/sumbu, kita dapat menggunakan fungsi ax.plot untuk merencanakan beberapa data. Mari kita mulai dengan sinusoid sederhana:

fig = plt.figure()
ax = plt.axes()

x = np.linspace(0, 10, 1000)
ax.plot(x, np.sin(x));
Sebagai alternatif, kita dapat menggunakan antarmuka pylab dan membiarkan figur dan sumbu dibuat untuk kita di latar belakang:

plt.plot(x, np.sin(x));

Jika kita ingin membuat gambar tunggal dengan banyak baris, kita cukup memanggil fungsi plot beberapa kali:

plt.plot(x, np.sin(x))
plt.plot(x, np.cos(x));
Demikianlah untuk merencanakan fungsi sederhana di Matplotlib! Kami sekarang akan menyelami beberapa detail lebih lanjut tentang cara mengontrol tampilan sumbu dan garis.

Menyesuaikan Plot: Warna Garis dan Gaya
Penyesuaian pertama yang mungkin ingin Anda lakukan pada plot adalah mengontrol warna dan gaya garis. Fungsi plt.plot() membutuhkan argumen tambahan yang dapat digunakan untuk menentukan ini. Untuk menyesuaikan warna, Anda dapat menggunakan keyword warna, yang menerima argumen string yang mewakili hampir semua warna yang bisa dibayangkan. Warnanya dapat ditentukan dalam berbagai cara:

plt.plot(x, np.sin(x - 0), color='blue')        # specify color by name
plt.plot(x, np.sin(x - 1), color='g')           # short color code (rgbcmyk)
plt.plot(x, np.sin(x - 2), color='0.75')        # Grayscale between 0 and 1
plt.plot(x, np.sin(x - 3), color='#FFDD44')     # Hex code (RRGGBB from 00 to FF)
plt.plot(x, np.sin(x - 4), color=(1.0,0.2,0.3)) # RGB tuple, values 0 to 1
plt.plot(x, np.sin(x - 5), color='chartreuse'); # all HTML color names supported
Jika tidak ada warna yang ditentukan, Matplotlib akan secara otomatis menggilir satu set warna default untuk beberapa baris.

Demikian pula, gaya garis dapat disesuaikan menggunakan kata kunci linestyle:

plt.plot(x, x + 0, linestyle='solid')
plt.plot(x, x + 1, linestyle='dashed')
plt.plot(x, x + 2, linestyle='dashdot')
plt.plot(x, x + 3, linestyle='dotted');

# For short, you can use the following codes:
plt.plot(x, x + 4, linestyle='-')  # solid
plt.plot(x, x + 5, linestyle='--') # dashed
plt.plot(x, x + 6, linestyle='-.') # dashdot
plt.plot(x, x + 7, linestyle=':');  # dotted
Jika Anda ingin menjadi sangat singkat, linestyle dan kode warna ini dapat digabungkan menjadi satu argumen non-keyword ke fungsi plt.plot():

plt.plot(x, x + 0, '-g')  # solid green
plt.plot(x, x + 1, '--c') # dashed cyan
plt.plot(x, x + 2, '-.k') # dashdot black
plt.plot(x, x + 3, ':r');  # dotted red
Kode warna satu karakter ini mencerminkan singkatan standar dalam sistem warna RGB (Merah / Hijau / Biru) dan CMYK (Cyan / Magenta / Kuning / blacK), umumnya digunakan untuk grafis warna digital.

Ada banyak argumen kata kunci lain yang dapat digunakan untuk menyempurnakan tampilan plot; untuk lebih jelasnya, saya sarankan melihat docstring fungsi plt.plot () menggunakan alat bantu IPython (Lihat Bantuan dan Dokumentasi dalam IPython).

Menyesuaikan Plot: Batas Sumbu
Matplotlib melakukan pekerjaan yang layak untuk memilih batas sumbu default untuk plot Anda, tetapi terkadang bagus untuk memiliki kontrol yang lebih baik. Cara paling dasar untuk menyesuaikan batas sumbu adalah dengan menggunakan metode plt.xlim () dan plt.ylim ():

plt.plot(x, np.sin(x))

plt.xlim(-1, 11)
plt.ylim(-1.5, 1.5);
Jika karena alasan tertentu Anda ingin salah satu poros ditampilkan terbalik, Anda dapat membalik urutan argumen:

plt.plot(x, np.sin(x))

plt.xlim(10, 0)
plt.ylim(1.2, -1.2);
Metode terkait yang bermanfaat adalah plt.axis() (perhatikan di sini potensi kebingungan antara axes dengan e, dan axis dengan i). Metode plt.axis() memungkinkan Anda menetapkan batas x dan y dengan satu panggilan, dengan meneruskan daftar yang menetapkan [xmin, xmax, ymin, ymax]:

plt.plot(x, np.sin(x))
plt.axis([-1, 11, -1.5, 1.5]);
Metode plt.axis () bahkan melampaui hal ini, memungkinkan Anda melakukan hal-hal seperti memperketat batas secara otomatis di sekitar plot saat ini:

plt.plot(x, np.sin(x))
plt.axis('tight');
Hal ini memungkinkan spesifikasi tingkat yang lebih tinggi, seperti memastikan rasio aspek yang sama sehingga pada layar Anda, satu unit dalam x sama dengan satu unit dalam y:

plt.plot(x, np.sin(x))
plt.axis('equal');
Untuk informasi lebih lanjut tentang batas sumbu dan kemampuan lain dari metode plt.axis, lihat plt.axis docstring.

Labeling Plots
Sebagai bagian terakhir dari bagian ini, kita akan secara singkat melihat pelabelan plot: judul, label sumbu, dan legenda sederhana.

Judul dan label sumbu adalah label paling sederhana — ada metode yang dapat digunakan untuk mengaturnya dengan cepat:

plt.plot(x, np.sin(x))
plt.title("A Sine Curve")
plt.xlabel("x")
plt.ylabel("sin(x)");
Posisi, ukuran, dan gaya label ini dapat disesuaikan menggunakan argumen opsional ke fungsi tersebut. Untuk informasi lebih lanjut, lihat dokumentasi Matplotlib dan dokumentasi dari masing-masing fungsi ini.

Ketika beberapa garis ditampilkan dalam satu sumbu, dapat berguna untuk membuat legenda plot yang menandai setiap jenis garis. Sekali lagi, Matplotlib memiliki cara built-in untuk menciptakan legenda dengan cepat. Hal ini dilakukan melalui metode (plt.legend). Meskipun ada beberapa cara yang valid untuk menggunakan ini, saya merasa paling mudah untuk menentukan label setiap baris menggunakan kata kunci label dari fungsi plot:

plt.plot(x, np.sin(x), '-g', label='sin(x)')
plt.plot(x, np.cos(x), ':b', label='cos(x)')
plt.axis('equal')

plt.legend();
Seperti yang Anda lihat, fungsi plt.legend () melacak gaya dan warna garis, dan mencocokkannya dengan label yang benar. Informasi lebih lanjut tentang menentukan dan memformat legenda plot dapat ditemukan di plt.legend docstring; Selain itu, kami akan membahas beberapa opsi legenda lanjutan dalam Menyesuaikan Legenda Plot.

---*** SEMOGA BERMANFAAT ***---

1 comment: