Skip to content

ThomNewton/HDI-Visualization-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📊 Analizator Wskaźnika Rozwoju Społecznego (HDI)

Projekt ten to aplikacja desktopowa, która umożliwia interaktywną analizę i wizualizację Wskaźnika Rozwoju Społecznego (HDI) oraz jego składowych dla wybranych krajów i okresów.

⭐ Główne Funkcje

  • Wczytywanie danych z gotowych plików .csv.
  • Dynamiczne generowanie wykresów z możliwością wyboru kraju, wskaźnika i zakresu lat.
  • Porównywanie danych kraju z globalnymi maksimami i minimami.
  • Obliczanie i wizualizacja regresji liniowej dla wybranych danych.
  • Ekstrapolacja brakujących danych w celu uzyskania ciągłych serii czasowych.
  • Zapisywanie gotowych wykresów do plików PDF i PNG.

🚀 Uruchomienie Programu

  1. Upewnij się, że masz zainstalowane wszystkie wymagane moduły. Aplikacja korzysta z zewnętrznych bibliotek, w tym PySimpleGUI.
  2. Przejdź do głównego folderu projektu.
  3. Uruchom plik main.py, aby rozpocząć.
python Code/main.py

⚙️ Aplikacja i Interfejs

Aplikacja została zbudowana przy użyciu biblioteki PySimpleGUI, a jej obsługa jest w pełni intuicyjna. Wszystkie operacje, z wyjątkiem wprowadzania zakresu dat, można wykonać za pomocą myszki, kierując się komunikatami wyświetlanymi na ekranie.

🧠 Analizowane Wskaźniki

Możesz analizować pięć różnych wskaźników:

  • HDI (Human Development Index) - główny wskaźnik rozwoju społecznego.
  • Life expectancy at birth - oczekiwana długość życia.
  • Expected years of schooling - oczekiwane lata nauki.
  • Mean years of schooling - średnia liczba lat nauki.
  • GNI per capita - dochód narodowy brutto na mieszkańca.

Źródła Danych

Dane wykorzystywane w projekcie pochodzą z renomowanych źródeł: OECD, World Bank oraz Human Development Report i są przechowywane w folderze Input Files. Program automatycznie sprawdza, czy pliki zawierają wystarczającą ilość informacji do stworzenia wykresu.


📈 Możliwości Wizualizacji

Dla każdego wskaźnika (oprócz HDI, który ma specjalne opcje) możesz nanieść na wykres do pięciu różnych funkcji:

  • Actual value for a country: Rzeczywiste wartości pobrane z plików dla danego kraju.
  • Maximum value globally: Najwyższe odnotowane wartości na świecie w danym roku.
  • Minimum value globally: Najniższe odnotowane wartości na świecie w danym roku.
  • Linear regression: Aproksymacja liniowa danych historycznych.
  • Extrapolated data: Funkcja, która łączy istniejące punkty danych lub ekstrapoluje brakujące wartości na podstawie regresji liniowej.

Szczegółowa Analiza HDI

Wskaźnik HDI jest obliczany jako średnia geometryczna trzech podindeksów (zdrowie, edukacja, dochód):

$$I_x = \frac{(\text{wartość faktyczna}) - (\text{wartość minimalna})}{(\text{wartość maksymalna}) - (\text{wartość minimalna})}$$

$$HDI = \sqrt[3]{I_h \cdot I_e \cdot I_s}$$

Aplikacja pozwala na unikalną analizę HDI na cztery sposoby:

  • Actual HDI: Dane historyczne pobrane bezpośrednio z plików.
  • Extrapolated based on actual HDI: Ekstrapolacja danych z ograniczeniem wartości do przedziału $[0, 1]$.
  • Calculated Absolute HDI: HDI obliczone na podstawie stałych wartości granicznych ustalonych przez ekspertów w 2011 roku.
  • Calculated Relative HDI: HDI obliczone na podstawie globalnych wartości minimalnych i maksymalnych dla danego roku, co pokazuje relatywną pozycję kraju.

Analiza Regresji Liniowej

Podczas generowania wykresu z regresją liniową, aplikacja wyświetli:

  • Współczynniki wyznaczonego równania liniowego.
  • Współczynnik korelacji Pearsona.
  • Współczynnik determinacji ($R^2$).

Dzięki tym informacjom możesz samodzielnie ocenić jakość dopasowania modelu liniowego.


📁 Struktura Projektu

Gotowe wykresy są automatycznie zapisywane w formatach PDF i PNG w folderze Output Files.

Project/
├── Code/
│   ├── app.py                # Logika aplikacji i interfejsu (klasa App)
│   ├── economic_indexes.py   # Klasy dla każdego wskaźnika ekonomicznego
│   ├── main.py               # Główny plik do uruchamiania programu
│   ├── utility_functions.py  # Funkcje pomocnicze
│   └── utility_information.py# Słowniki (np. nazwy państw) i stałe
│
├── Input Files/
│   ├── Expected years of schooling/
│   ├── GNI per capita/
│   ├── Human Development Index/
│   ├── Life expectancy at birth/
│   └── Mean years of schooling/
│
└── Output Files/
    (tutaj zapisywane są wygenerowane wykresy)

Dokumentacja

Więcej informacji, bardziej dokładnych, znajduje się w pliku HOW_TO.txt.

Szczegółowa dokumentacja kodu, wygenerowana za pomocą doxygen, znajduje się w pliku documentation.txt. Kod źródłowy jest również obszernie komentowany.


✍️ Autor

Projekt został w całości napisany i zrealizowany przez Macieja Jedynaka.

About

[In Polish] Projekt zaliczeniowy zrealizowany w ramach przedmiotu Języki Skryptowe.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages