Matplotlib nuqtali diagramma (scatter)


ULASHISH

Tarqalgan chizmalarni yaratish

Pyplot yordamida siz scatter() funksiyasidan scatter chizmasini chizishingiz mumkin.

scatter() funksiyasi har bir kuzatish uchun bitta nuqta chizadi. Unga bir xil uzunlikdagi ikkita massiv kerak bo‘ladi, biri x o‘qi qiymatlari uchun, ikkinchisi esa y o‘qidagi qiymatlar uchun:

Misol

Oddiy nuqtali diagramma (scatter plot):

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()

Natija:

O‘zingiz sinab ko‘ring »

Yuqoridagi misoldagi kuzatuv 13 ta mashinaning o‘tib ketishi natijasidir.

X o‘qi mashinaning qancha eski ekanligini ko‘rsatadi.

Y o‘qi avtomobilning o‘tayotganda tezligini ko‘rsatadi.

Kuzatishlar o‘rtasida bog‘liqlik bormi?

Aftidan, mashina qanchalik yangi bo‘lsa, u shunchalik tez haydaydi, ammo bu tasodif bo‘lishi mumkin, axir biz atigi 13 ta mashinani ro‘yxatdan o‘tkazdik.


Plotlarni solishtiring

Yuqoridagi misolda tezlik va yosh o‘rtasida bog‘liqlik borga o‘xshaydi, ammo kuzatuvlarni boshqa kundan boshlab ham chizsak nima bo‘ladi? Tarqalish syujeti bizga yana bir narsani aytib beradimi?

Misol

Xuddi shu rasmga ikkita chizma chizing:

import matplotlib.pyplot as plt import numpy as np #day one, the age and speed of 13 cars: 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) #day two, the age and speed of 15 cars: 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()

Natija:

O‘zingiz sinab ko‘ring »

Eslatma: Ikki syujet ikki xil rangda chizilgan, sukut bo‘yicha ko‘k va to‘q sariq, ranglarni qanday o‘zgartirishni keyinroq ushbu bobda bilib olasiz.

Ikki syujetni solishtirib, shuni aytish mumkinki, ularning ikkalasi ham bir xil xulosaga keladi: mashina qanchalik yangi bo‘lsa, u shunchalik tez haydaydi.



Ranglar

coloryoki c argumenti bilan har bir tarqalish chizmasi uchun o‘zingizningcolorni o‘rnatishingiz mumkin:

Misol

Markerlarning o‘z rangini o‘rnating:

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()

Natija:

O‘zingiz sinab ko‘ring »

Har bir nuqtani ranglang

Siz hatto c argumenti uchun qiymat sifatida ranglar massividan foydalanib, har bir nuqta uchun ma’lum rangni o‘rnatishingiz mumkin:

Eslatma: Buning uchuncolorargumentidan foydalana olmaysiz, faqat c argumenti.

Misol

Markerlarning o‘z rangini o‘rnating:

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()

Natija:

O‘zingiz sinab ko‘ring »

Rang xaritasi

Matplotlib modulida bir qator mavjud rang xaritalari mavjud.

Rang xaritasi ranglar ro‘yxatiga o‘xshaydi, bu yerda har bir rang 0 dan 100 gacha bo‘lgan qiymatga ega.

Mana rang xaritasiga misol:

Ushbu rang xaritasi "viridis" deb ataladi va siz ko‘rib turganingizdek, u binafsha rang bo‘lgan 0 dan 100 gacha sariq rangga ega.

ColorMap-dan qanday foydalanish kerak

Siz rang xaritasinicmapkalit so‘zi bilan rang xaritasining qiymati bilan belgilashingiz mumkin, bu holda 'viridis' Matplotlib-da mavjud bo‘lgan ichki rang xaritalaridan biri.

Bundan tashqari, siz (0 dan 100 gacha) qiymatlari bo‘lgan massivni yaratishingiz kerak, tarqalish chizmasidagi har bir nuqta uchun bitta qiymat:

Misol

Ranglar massivi yarating va tarqalish chizmasida rang xaritasini belgilang:

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()

Natija:

O‘zingiz sinab ko‘ring »

plt.colorbar() operatorini qo‘shish orqali siz rang xaritasini chizmaga kiritishingiz mumkin:

Misol

Haqiqiy rang xaritasini qo‘shing:

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()

Natija:

O‘zingiz sinab ko‘ring »

Rangli xaritalar mavjud

Siz o‘rnatilgan rang xaritalaridan birini tanlashingiz mumkin:

Name   Reverse
Accent Try it »   Accent_r Try it »
Blues Try it »   Blues_r Try it »
BrBG Try it »   BrBG_r Try it »
BuGn Try it »   BuGn_r Try it »
BuPu Try it »   BuPu_r Try it »
CMRmap Try it »   CMRmap_r Try it »
Dark2 Try it »   Dark2_r Try it »
GnBu Try it »   GnBu_r Try it »
Greens Try it »   Greens_r Try it »
Greys Try it »   Greys_r Try it »
OrRd Try it »   OrRd_r Try it »
Oranges Try it »   Oranges_r Try it »
PRGn Try it »   PRGn_r Try it »
Paired Try it »   Paired_r Try it »
Pastel1 Try it »   Pastel1_r Try it »
Pastel2 Try it »   Pastel2_r Try it »
PiYG Try it »   PiYG_r Try it »
PuBu Try it »   PuBu_r Try it »
PuBuGn Try it »   PuBuGn_r Try it »
PuOr Try it »   PuOr_r Try it »
PuRd Try it »   PuRd_r Try it »
Purples Try it »   Purples_r Try it »
RdBu Try it »   RdBu_r Try it »
RdGy Try it »   RdGy_r Try it »
RdPu Try it »   RdPu_r Try it »
RdYlBu Try it »   RdYlBu_r Try it »
RdYlGn Try it »   RdYlGn_r Try it »
Reds Try it »   Reds_r Try it »
Set1 Try it »   Set1_r Try it »
Set2 Try it »   Set2_r Try it »
Set3 Try it »   Set3_r Try it »
Spectral Try it »   Spectral_r Try it »
Wistia Try it »   Wistia_r Try it »
YlGn Try it »   YlGn_r Try it »
YlGnBu Try it »   YlGnBu_r Try it »
YlOrBr Try it »   YlOrBr_r Try it »
YlOrRd Try it »   YlOrRd_r Try it »
afmhot Try it »   afmhot_r Try it »
autumn Try it »   autumn_r Try it »
binary Try it »   binary_r Try it »
bone Try it »   bone_r Try it »
brg Try it »   brg_r Try it »
bwr Try it »   bwr_r Try it »
cividis Try it »   cividis_r Try it »
cool Try it »   cool_r Try it »
coolwarm Try it »   coolwarm_r Try it »
copper Try it »   copper_r Try it »
cubehelix Try it »   cubehelix_r Try it »
flag Try it »   flag_r Try it »
gist_earth Try it »   gist_earth_r Try it »
gist_gray Try it »   gist_gray_r Try it »
gist_heat Try it »   gist_heat_r Try it »
gist_ncar Try it »   gist_ncar_r Try it »
gist_rainbow Try it »   gist_rainbow_r Try it »
gist_stern Try it »   gist_stern_r Try it »
gist_yarg Try it »   gist_yarg_r Try it »
gnuplot Try it »   gnuplot_r Try it »
gnuplot2 Try it »   gnuplot2_r Try it »
gray Try it »   gray_r Try it »
hot Try it »   hot_r Try it »
hsv Try it »   hsv_r Try it »
inferno Try it »   inferno_r Try it »
jet Try it »   jet_r Try it »
magma Try it »   magma_r Try it »
nipy_spectral Try it »   nipy_spectral_r Try it »
ocean Try it »   ocean_r Try it »
pink Try it »   pink_r Try it »
plasma Try it »   plasma_r Try it »
prism Try it »   prism_r Try it »
rainbow Try it »   rainbow_r Try it »
seismic Try it »   seismic_r Try it »
spring Try it »   spring_r Try it »
summer Try it »   summer_r Try it »
tab10 Try it »   tab10_r Try it »
tab20 Try it »   tab20_r Try it »
tab20b Try it »   tab20b_r Try it »
tab20c Try it »   tab20c_r Try it »
terrain Try it »   terrain_r Try it »
twilight Try it »   twilight_r Try it »
twilight_shifted Try it »   twilight_shifted_r Try it »
viridis Try it »   viridis_r Try it »
winter Try it »   winter_r Try it »

Hajmi

s argumenti yordamida nuqtalar hajmini o‘zgartirishingiz mumkin.

Ranglar singari, o‘lchamlar uchun massiv x va y o‘qlari uchun massivlar bilan bir xil uzunlikka ega ekanligiga ishonch hosil qiling:

Misol

Belgilar uchun o‘zingizning o‘lchamingizni belgilang:

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()

Natija:

O‘zingiz sinab ko‘ring »

Alfa

alphaargumenti yordamida nuqtalarning shaffofligini sozlashingiz mumkin.

Ranglar singari, o‘lchamlar uchun massiv x va y o‘qlari uchun massivlar bilan bir xil uzunlikka ega ekanligiga ishonch hosil qiling:

Misol

Belgilar uchun o‘zingizning o‘lchamingizni belgilang:

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, alpha=0.5) plt.show()

Natija:

O‘zingiz sinab ko‘ring »

Rang hajmi va alfani birlashtiring

Rang xaritasini turli o‘lchamdagi nuqtalar bilan birlashtira olasiz. Agar nuqta shaffof bo‘lsa, buni eng yaxshi ko‘rish mumkin:

Misol

X nuqtalari, y nuqtalari, ranglari va o‘lchamlari uchun 100 ta qiymatga ega tasodifiy massivlarni yarating:

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()

Natija:

O‘zingiz sinab ko‘ring »

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!