CodeGym /Kurslar /Python SELF AZ /Verilənlərin paylanmasının vizuallaşdırılması üçün histoq...

Verilənlərin paylanmasının vizuallaşdırılması üçün histoqramların qurulması

Python SELF AZ
Səviyyə , Dərs
Mövcuddur

1. Histoqramların əsasları

Əgər sən nə vaxtsa furşet masasında baxıb, hansı qəlyanaltının daha çox olduğunu qərarlaşdırmağa çalışmısansa, sən artıq məlumat paylanması haqqında bir az anlayışa maliksən. Proqramlaşdırmada biz məlumatlardakı nümunələri aşkar etmək üçün histoqramlardan istifadə edirik, hansı ki, ilk baxışda aydın olmaya bilər. Histoqramlar məlumatların müəyyən kateqoriyalara və ya ədədi diapazonlara necə paylandığını vizual analiz etməyə kömək edir. Başlayaq!

Histoqram nədir?

Histoqram - bu, məlumatların müəyyən intervallara və ya "bin"-lərə ("səbətlər" və ya "vedrələr" də deyilə bilər) necə paylandığını vizuallaşdırmaq üçün istifadə edilən qrafik növüdür. Məsələn: əgər tələbələrin testdən neçə dəfə müəyyən bal yığdıqlarını bilmək istəsək, histoqram bunu göstərmək üçün ən yaxşı üsuldur.

Histoqramın əsas parametrləri

Histoqram sütunlardan (binlərdən) qurulur, hansı ki, hər sütun müvafiq intervala düşən məlumatların sayını göstərir. Histoqramın əsas parametrləri:

  • Binlər (bins): məlumat diapazonunu bölmək üçün intervalların sayı.
  • Rəng və sərhəd (coloredgecolor): sütunların xarici görünüşünü müəyyən edir.
  • Diapazon (range): göstərmək üçün minimum və maksimum dəyərləri təyin edir.
  • Sıxlıq (density): əgər True olaraq təyin edilərsə, histoqram normallaşacaq və sütunların ümumi sahəsi birdə bərabər olacaq.

Histoqramları qurmaq üçün hist() funksiyasından istifadə

Matplotlib kitabxanasında histoqram yaratmağı asanlaşdıran möhtəşəm bir hist() funksiyası var. Gəlin sadə bir nümunəyə baxaq:

Python

import matplotlib.pyplot as plt
import numpy as np

# Məlumat dəsti yaradırıq
data = np.random.normal(0, 1, 1000)

# Histoqram yaradırıq
plt.hist(data, bins=30, alpha=0.7, color='blue')
plt.title('Məlumatların paylanma histoqramı')
plt.xlabel('Dəyərlər')
plt.ylabel('Tezlik')
plt.show()

Burada, biz np.random.normal() funksiyasından istifadə edərək məlumat dəsti yaradırıq, hansı ki, normal paylama yaradır. Məlumatları 30 binə bölürük və sütunların şəffaflığını alpha parametri ilə müəyyən edirik daha yaxşı vizualizasiya üçün.

2. Bin-lərin tənzimlənməsi və qrafikin növü

Bin-lərin sayını və ölçüsünü müəyyən etmək

Bin-lərin sayı və ölçüsü histoqramın interpretasiyasına ciddi təsir edə bilər. Çox böyük ölçülü bin-lər vacib detalları gizlədə bilər, çox kiçik bin-lər isə histoqramı nizamsız və dərk edilməsi çətin edir.

Praktik nümunə:

Python

# Bin-lərin sayı və ölçüsünü dəyişmək
plt.hist(data, bins=10, color='green', edgecolor='black')
plt.title('10 bin ilə histoqram')
plt.xlabel('Dəyərlər')
plt.ylabel('Tezlik')
plt.show()

plt.hist(data, bins=50, color='red', edgecolor='black')
plt.title('50 bin ilə histoqram')
plt.xlabel('Dəyərlər')
plt.ylabel('Tezlik')
plt.show()

10 və 50 bin ilə histoqramın necə dəyişdiyini izləyin. Fərqi görürsünüz? Bu tam o haldır ki, ölçü əhəmiyyətlidir!

Histogram parametrlərinin dəyişdirilməsi üzrə praktiki nümunələr

Histogramlar yalnız bin-lərin sayı ilə deyil, həmçinin rəngi, şəffaflığı və hətta sütunların üslubu ilə də konfiqurasiya edilə bilər. Budur, bir neçə nümunə də:

Python

# Digər tənzimləmə parametrləri
plt.hist(data, bins=30, density=True, color='purple', edgecolor='white', linestyle='dashed')
plt.title('Dəyişilmiş üslublu sıxlıq histogramı')
plt.xlabel('Dəyərlər')
plt.ylabel('Sıxlıq')
plt.grid(True)
plt.show()

Bu nümunədə biz density=True parametrini əlavə etdik ki, bu da histoqramı normallaşdırır və qrafikin altındakı sahəni 1-ə bərabər edir. Bu, paylanmanın ehtimal sıxlığını analiz etmək istədikdə faydalı ola bilər.

3. Histogramlardan istifadə nümunələri

Histogramlar müxtəlif sahələrdə tətbiq olunur - maliyyə məlumatlarının analizi, fizika üzrə eksperimentlər və s. Gəlin, histogramı real bir məlumat dəsti ilə necə istifadə edə biləcəyimizə baxaq.

Real məlumat dəsti ilə histogramın qurulması

Təsəvvür edin ki, bizdə ilin orta gündəlik temperaturunu əks etdirən bir məlumat dəsti var. Biz analiz etmək istəyirik, temperaturun müəyyən diapazonlarda nə qədər tez-tez rastlandığını.

Python

# Temperatur məlumat dəsti (nümunə üçün sadələşdirilmiş)
temperatures = [15, 16, 15, 14, 19, 22, 24, 25, 17, 18, 15, 16, 23, 24, 21, 19, 18, 20, 22, 25, 26, 27]

# Histogramın qurulması
plt.hist(temperatures, bins=5, color='navy', edgecolor='black')
plt.title('Temperatur histogramı')
plt.xlabel('Temperatur (°C)')
plt.ylabel('Tezlik')
plt.show()

Bu nümunədə biz 5 bin istifadə etdik ki, dəyərlərin necə paylandığını anlayaq. Histogram göstərir ki, temperaturun əksəriyyəti 15-20°C diapazonunda yerləşir.

Eyni histogramda paylanmaların müqayisəsi

Bəzən bir neçə məlumat dəstəsinin paylanmasını eyni histogramda müqayisə etmək lazım olur. Matplotlib-də alpha (şəffaflıq) parametri ilə bir neçə histogram üst-üstə yerləşdirilə bilər.

Nümunə 3: Paylanmaların müqayisəsi

Python

import matplotlib.pyplot as plt

# Məlumatların yaradılması
data1 = [5, 10, 10, 15, 15, 20, 25, 30, 30, 35, 40]
data2 = [5, 7, 9, 10, 11, 13, 15, 17, 19, 20, 25]

# Üst-üstə düşən histogramların qurulması
plt.hist(data1, bins=5, color="blue", alpha=0.5, label="Dəstə 1")
plt.hist(data2, bins=5, color="green", alpha=0.5, label="Dəstə 2")
plt.xlabel("Dəyər")
plt.ylabel("Tezlik")
plt.title("İki paylanmanın müqayisəsi")
plt.legend()
plt.show()

Bu nümunədə hər histogram üçün alpha=0.5 parametrindən istifadə edirik, bu da sütunları yarımşəffaf edir və paylanmalar arasındakı kəsişmələri vizual müqayisə etməyə imkan verir.

Histogramlarla iş üçün faydalı məsləhətlər

  • Binların optimal sayı: Binların sayını məlumatların həcminə və xarakterinə uyğun seçin. Çox az və ya çox bin olması paylanmanı təhrif edə bilər.
  • Paylanmaların müqayisəsi: Bir neçə histogramı üst-üstə düşürmək və paylanmaları müqayisə etmək üçün şəffaflıq (alpha) istifadə edin.
  • Şəbəkənin əlavə edilməsi: Şəbəkə məlumatların daha yaxşı interpretasiyasına kömək edir. Onu plt.grid(True) funksiyası ilə əlavə etmək olar.
  • density parametri: Məlumatları ehtimal sıxlığı şəklində göstərmək üçün density=True istifadə edin, bu da paylanmaları müqayisə edərkən xüsusilə faydalıdır.
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION