Section Artikel
Membuat Plot Scatter
Dengan Pyplot, Kita dapat menggunakan fungsi scatter() untuk menggambar plot scatter.
Fungsi scatter() adalah untuk memplot satu titik pada setiap pengamatan. Fungsi ini membutuhkan dua array dengan panjang yang sama, satu untuk nilai sumbu x, dan satu untuk nilai pada sumbu y.
Contoh:
Plot Scatter sederhana
import sys import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt import numpy as np x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6]) y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86]) plt.scatter(x, y) plt.show() plt.savefig(sys.stdout.buffer) sys.stdout.flush()
Hasilnya:

Pengamatan pada contoh di atas adalah hasil dari 13 mobil yang melintas.
Sumbu X menunjukkan umur mobil.
Sumbu Y menunjukkan kecepatan mobil saat melintas.
Apakah ada hubungan antara observasi?
Terlihat bahwa semakin baru mobilnya, semakin cepat ia melaju, tetapi itu bisa jadi kebetulan, karena kita hanya mengamati 13 mobil.
Bandingkan Plot
Dalam contoh di atas, terlihat ada hubungan antara kecepatan dan usia, tetapi bagaimana jika kita memetakan pengamatan dari hari yang lain juga? Akankah plot scatter memberi hasil yang lain?
Contoh:
Gambarlah dua plot pada gambar yang sama
import sys import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt import numpy as np #hari pertama, usia dan kecepatan 13 mobil: x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6]) y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86]) plt.scatter(x, y) #hari kedua, usia dan kecepatan 15 mobil: x = np.array([2,2,8,1,15,8,12,9,7,3,11,4,7,14,12]) y = np.array([100,105,84,105,90,99,90,95,94,100,79,112,91,80,85]) plt.scatter(x, y) plt.show() plt.savefig(sys.stdout.buffer) sys.stdout.flush()
Hasilnya:

Catatan: Kedua plot diplot dengan dua warna berbeda, secara default akan muncul warna biru dan oranye, kita akan mempelajari cara mengubah warna nanti di bab ini.
Dengan membandingkan dua plot, maka sah untuk mengatakan bahwa keduanya memberi kita kesimpulan yang sama: semakin baru mobilnya, semakin cepat ia melaju.
Warna
Kita dapat mengatur warna sesuai apa yang kita inginkan untuk setiap plot scatter dengan color atau argumen c.
Contoh:
Tetapkan warna penanda kita sendiri
import sys import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt import numpy as np x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6]) y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86]) plt.scatter(x, y, color = 'hotpink') x = np.array([2,2,8,1,15,8,12,9,7,3,11,4,7,14,12]) y = np.array([100,105,84,105,90,99,90,95,94,100,79,112,91,80,85]) plt.scatter(x, y, color = '#88c999') plt.show() plt.savefig(sys.stdout.buffer) sys.stdout.flush()
Hasilnya:

Warnai Setiap Titik
Kita bahkan dapat mengatur warna tertentu untuk setiap titik dengan menggunakan array warna sebagai nilai untuk argumen c.
Catatan: kita tidak bisa menggunakan argumen color untuk ini, hanya argumen c.
Contoh:
Tetapkan warna penanda kita sendiri
import sys import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt import numpy as np x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6]) y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86]) colors = np.array(["red","green","blue","yellow","pink","black","orange","purple","beige","brown","gray","cyan","magenta"]) plt.scatter(x, y, c=colors) plt.show() plt.savefig(sys.stdout.buffer) sys.stdout.flush()
Hasilnya:

ColorMap
Modul Matplotlib memiliki sejumlah colormap yang tersedia.
Colormap sama seperti daftar warna, di mana setiap warna memiliki nilai yang berkisar dari 0 hingga 100.
Berikut adalah contoh Colormap:

Colormap ini disebut ‘viridis’ dan seperti yang kita lihat berkisar dari 0, yang merupakan warna ungu, dan hingga 100, yang merupakan warna kuning.
Cara Menggunakan ColorMap
Kita dapat menentukan colormap dengan argumen kata kunci cmap dengan nilai colormap, dalam hal ini ‘viridis’ yang merupakan salah satu colormap bawaan yang tersedia di Matplotlib.
Selain itu kita harus membuat array dengan nilai (dari 0 hingga 100), satu nilai untuk setiap titik di plot scatter.
Contoh:
Buat array warna, dan tentukan colormap di plot scatter
import sys import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt import numpy as np x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6]) y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86]) colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100]) plt.scatter(x, y, c=colors, cmap='viridis') plt.show() plt.savefig(sys.stdout.buffer) sys.stdout.flush()
Kita bisa menyertakan colormap dalam gambar dengan menyertakan argumen plt.colorbar().
Contoh:
Sertakan colormap
import sys import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt import numpy as np x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6]) y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86]) colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100]) plt.scatter(x, y, c=colors, cmap='viridis') plt.colorbar() plt.show() plt.savefig(sys.stdout.buffer) sys.stdout.flush()
ColorMaps tersedia
Kita dapat memilih salah satu colormap bawaan
Nama | Kebalikan |
---|---|
Accent | Accent_r |
Blues | Blues_r |
BrBG | BrBG_r |
BuGn | BuGn_r |
BuPu | BuPu_r |
CMRmap | CMRmap_r |
Dark2 | Dark2_r |
GnBu | GnBu_r |
Greens | Greens_r |
Greys | Greys_r |
OrRd | OrRd_r |
Oranges | Oranges_r |
PRGn | PRGn_r |
Paired | Paired_r |
Pastel1 | Pastel1_r |
Pastel2 | Pastel2_r |
PiYG | PiYG_r |
PuBu | PuBu_r |
PuBuGn | PuBuGn_r |
PuOr | PuOr_r |
PuRd | PuRd_r |
Purples | Purples_r |
RdBu | RdBu_r |
RdGy | RdGy_r |
RdPu | RdPu_r |
RdYlBu | RdYlBu_r |
RdYlGn | RdYlGn_r |
Reds | Reds_r |
Set1 | Set1_r |
Set2 | Set2_r |
Set3 | Set3_r |
Spectral | Spectral_r |
Wistia | Wistia_r |
YlGn | YlGn_r |
YlGnBu | YlGnBu_r |
YlOrBr | YlOrBr_r |
YlOrRd | YlOrRd_r |
afmhot | afmhot_r |
autumn | autumn_r |
binary | binary_r |
bone | bone_r |
brg | brg_r |
bwr | bwr_r |
cividis | cividis_r |
cool | cool_r |
coolwarm | coolwarm_r |
copper | copper_r |
cubehelix | cubehelix_r |
flag | flag_r |
gist_earth | gist_earth_r |
gist_gray | gist_gray_r |
gist_heat | gist_heat_r |
gist_ncar | gist_ncar_r |
gist_rainbow | gist_rainbow_r |
gist_stern | gist_stern_r |
gist_yarg | gist_yarg_r |
gnuplot | gnuplot_r |
gnuplot2 | gnuplot2_r |
gray | gray_r |
hot | hot_r |
hsv | hsv_r |
inferno | inferno_r |
jet | jet_r |
magma | magma_r |
nipy_spectral | nipy_spectral_r |
ocean | ocean_r |
pink | pink_r |
plasma | plasma_r |
prism | prism_r |
rainbow | rainbow_r |
seismic | seismic_r |
spring | spring_r |
summer | summer_r |
tab10 | tab10_r |
tab20 | tab20_r |
tab20b | tab20b_r |
tab20c | tab20c_r |
terrain | terrain_r |
twilight | twilight_r |
twilight_shifted | twilight_shifted_r |
viridis | viridis_r |
winter | winter_r |
Ukuran
Kita dapat mengubah ukuran titik dengan argumen s.
Sama seperti warna, pastikan array untuk ukuran memiliki panjang yang sama dengan array untuk sumbu x dan y.
Contoh:
Tetapkan ukuran sesuai keinginan kita sendiri pada penanda
import sys import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt import numpy as np x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6]) y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86]) sizes = np.array([20,50,100,200,500,1000,60,90,10,300,600,800,75]) plt.scatter(x, y, s=sizes) plt.show() plt.savefig(sys.stdout.buffer) sys.stdout.flush()
Hasilnya:

Alpha
Anda dapat menyesuaikan transparansi titik dengan argumen alpha.
Sama seperti warna, pastikan array untuk ukuran memiliki panjang yang sama dengan array untuk sumbu x dan y.
Contoh:
Tetapkan ukuran sesuai keinginan kita sendiri pada penanda
import sys import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt import numpy as np x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6]) y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86]) sizes = np.array([20,50,100,200,500,1000,60,90,10,300,600,800,75]) plt.scatter(x, y, s=sizes) plt.show() plt.savefig(sys.stdout.buffer) sys.stdout.flush()
Hasilnya:

Gabungkan Color Size dan Alpha
Kita dapat menggabungkan colormap dengan ukuran berbeda pada titik-titik. Hal ini cara paling baik divisualisasikan jika titik-titiknya transparan.
Contoh:
Buat array acak dengan 100 nilai untuk titik-x, titik-y, warna dan ukuran
import sys import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt import numpy as np x = np.random.randint(100, size=(100)) y = np.random.randint(100, size=(100)) colors = np.random.randint(100, size=(100)) sizes = 10 * np.random.randint(100, size=(100)) plt.scatter(x, y, c=colors, s=sizes, alpha=0.5, cmap='nipy_spectral') plt.colorbar() plt.show() plt.savefig(sys.stdout.buffer) sys.stdout.flush()
Hasilnya:
