Home » python » Matplotlib Scatter: Code dan Cara Membuatnya

Matplotlib Scatter: Code dan Cara Membuatnya

by Catur Kurnia Sari
by Catur Kurnia Sari

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

NamaKebalikan
AccentAccent_r
BluesBlues_r
BrBGBrBG_r
BuGnBuGn_r
BuPuBuPu_r
CMRmapCMRmap_r
Dark2Dark2_r
GnBuGnBu_r
GreensGreens_r
GreysGreys_r
OrRdOrRd_r
OrangesOranges_r
PRGnPRGn_r
PairedPaired_r
Pastel1Pastel1_r
Pastel2Pastel2_r
PiYGPiYG_r
PuBuPuBu_r
PuBuGnPuBuGn_r
PuOrPuOr_r
PuRdPuRd_r
PurplesPurples_r
RdBuRdBu_r
RdGyRdGy_r
RdPuRdPu_r
RdYlBuRdYlBu_r
RdYlGnRdYlGn_r
RedsReds_r
Set1Set1_r
Set2Set2_r
Set3Set3_r
SpectralSpectral_r
WistiaWistia_r
YlGnYlGn_r
YlGnBuYlGnBu_r
YlOrBrYlOrBr_r
YlOrRdYlOrRd_r
afmhotafmhot_r
autumnautumn_r
binarybinary_r
bonebone_r
brgbrg_r
bwrbwr_r
cividiscividis_r
coolcool_r
coolwarmcoolwarm_r
coppercopper_r
cubehelixcubehelix_r
flagflag_r
gist_earthgist_earth_r
gist_graygist_gray_r
gist_heatgist_heat_r
gist_ncargist_ncar_r
gist_rainbowgist_rainbow_r
gist_sterngist_stern_r
gist_yarggist_yarg_r
gnuplotgnuplot_r
gnuplot2gnuplot2_r
graygray_r
hothot_r
hsvhsv_r
infernoinferno_r
jetjet_r
magmamagma_r
nipy_spectralnipy_spectral_r
oceanocean_r
pinkpink_r
plasmaplasma_r
prismprism_r
rainbowrainbow_r
seismicseismic_r
springspring_r
summersummer_r
tab10tab10_r
tab20tab20_r
tab20btab20b_r
tab20ctab20c_r
terrainterrain_r
twilighttwilight_r
twilight_shiftedtwilight_shifted_r
viridisviridis_r
winterwinter_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:

You may also like