Skip to content

KrzyKerlin/Python-Charts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📊 Chart Generator

A simple and user-friendly command-line tool (CLI) for generating personalized charts in Python. Perfect for quick data visualization without the need for complex software.

Dashboard Preview

✨ Key Features

  • Four Chart Types: Create column, line, bar, and pie charts.
  • Interactive Dashboard: Generate all four charts in a single, cohesive analytics panel.
  • Full Customization: Use default data for a quick preview, enter your own labels, values, and titles manually, or load data directly from .csv or .json files.
  • User-Friendly Interface: It guides the user step by step with clear messages and emoji icons. In the main menu, 0 means exit the app, and after moving on to the next command, 0 means back.
  • Smart Input Validation: Built-in error handling prevents crashes from incorrect user input. This includes specific validation for bar chart percentages (0-100%) when loading from files.
  • Modern Visual Theme: Charts are generated with a professional and aesthetically pleasing visual theme.
  • Save to File: All generated charts are automatically saved as high-resolution .png files.

🚀 Installation and Usage

To run the project, follow the steps below.

Prerequisites

  • Python 3.11 - The project was written and tested on this version. Using other versions may cause issues (see the Compatibility section).

Installation Steps

  1. Clone the Repository

    git clone <your-repository-address>
    cd <project-folder-name>
  2. Create and Activate a Virtual Environment (Recommended)

    • Windows:
      python -m venv venv
      .\venv\Scripts\activate
    • macOS / Linux:
      python3 -m venv venv
      source venv/bin/activate
  3. Install Required Libraries The project uses a few libraries that you can easily install using the provided requirements.txt file:

    pip install -r requirements.txt / py -3.11 -m pip install -r requirements.txt

Running the Application

After a successful installation, run the main script with the following command:

python main.py

About the Run Command (python vs py -3.11)

You might notice that both python main.py and py -3.11 main.py work on some systems (like Windows with the Python Launcher).

  • py -3.11 main.py: This is a Windows-specific command that explicitly tells the system to use Python version 3.11.
  • python main.py: This is the universal, cross-platform command. It works correctly as long as your active virtual environment is running Python 3.11.

This guide recommends using python main.py after activating the virtual environment, as it's the most reliable and standard method.

⚙️ How to Use

After launching the script, you will see a simple menu where you can choose which chart to create:

  • 1: Column Chart - Ideal for comparing values across different categories.
  • 2: Line Chart - Great for showing trends over time or across sequential data points.
  • 3: Bar Chart - Similar to a column chart, but horizontal. Ideal for rankings and comparisons when labels should be displayed as percentages.
  • 4: Pie Chart - Best for showing the percentage contribution of each part to a whole.
  • 5: Dashboard - Generates all four charts at once in one image, or thanks to 0 we can skip bar chart.

Data Input

For each chart, the program will present you with choices for data input:

1: Use default data: The program will instantly generate a chart using pre-configured, default data. This is a great option to quickly see what a chart type looks like.

2: Enter data manually: The program will enter an interactive mode, where it will prompt you for: The number of data points you want to enter. The labels and values for each data point. Optionally, a custom title for your chart.

3: Load from file (CSV/JSON): You will be asked to provide a file path. The program will attempt to load data from the specified .csv or .json file. After successful loading, you'll be prompted to map which columns from your file correspond to the chart's labels and values. This is a powerful way to visualize your existing datasets!

Input Validation

Don't worry about making mistakes! The validation system ensures that the data you enter is correct. If you type text instead of a number or a value outside the allowed range (e.g., a negative number for sales), you will see a friendly error message and be able to try again.

Specifically for Bar Charts (%), when loading data from a .csv or .json file, the validation system ensures that all percentage values are strictly between 0 and 100. If invalid values are found, the program will gracefully revert to default data or will not display the file to prevent errors.

⚠️ Python Version Compatibility

This project was built using Python 3.11. While it might work on newer versions (e.g., 3.12), it is not guaranteed. Older versions of Python (below 3.8) will definitely not work due to the use of modern language features.

The main libraries, matplotlib and pandas, also have their own Python version requirements. If you encounter installation errors on an unsupported version, the issue is most likely due to library incompatibility.

📁 Project Structure

.
├── main.py             # Main script, menu, and chart creation logic
├── data_inputs.py      # Functions for user interaction and validation
├── styles.py           # Module for managing the visual theme and colors
├── requirements.txt    # List of required libraries for the project
├── data/               # Directory containing example CSV/JSON data files.
└── charts.png          # Example image of the generated dashboard

📊 Generator Wykresów

Proste i przyjazne narzędzie wiersza poleceń (CLI) do generowania prostych, spersonalizowanych wykresów w Pythonie. Idealne do szybkiej wizualizacji danych bez potrzeby skomplikowanego oprogramowania.

Podgląd Dashboardu

✨ Główne Funkcje

  • Cztery Typy Wykresów: Twórz wykresy kolumnowe, liniowe, słupkowe i kołowe.
  • Interaktywny Dashboard: Wygeneruj wszystkie cztery wykresy w jednym, spójnym panelu analitycznym.
  • Pełna Personalizacja: Użyj domyślnych danych do szybkiego podglądu, wprowadź własne etykiety, wartości i tytuły ręcznie, lub wczytaj dane bezpośrednio z plików .csv lub .json.
  • Przyjazny Interfejs: Prowadzi użytkownika krok po kroku za pomocą czytelnych komunikatów i ikon emoji. W menu głównym 0 oznacza wyjście z aplikacji, a po przejściu do następnego polecenia 0 oznacza powrót.
  • Inteligentna Walidacja: Wbudowana obsługa błędów zapobiega awariom programu przy niepoprawnych danych wejściowych. Obejmuje to specyficzną walidację dla procentów w wykresach słupkowych (0-100%) podczas wczytywania z plików.
  • Nowoczesny Wygląd: Wykresy są generowane z użyciem profesjonalnego motywu wizualnego.
  • Zapis do Pliku: Wszystkie wygenerowane wykresy są automatycznie zapisywane jako pliki .png w wysokiej rozdzielczości.

🚀 Instalacja i Uruchomienie

Aby uruchomić projekt, postępuj zgodnie z poniższymi krokami.

Wymagania Wstępne

  • Python 3.11 - Projekt został napisany i przetestowany na tej wersji. Używanie innych wersji może powodować problemy (zobacz sekcję o Kompatybilności).

Kroki Instalacji

  1. Sklonuj Repozytorium

    git clone <adres-twojego-repozytorium>
    cd <nazwa-folderu-projektu>
  2. Stwórz i Aktywuj Wirtualne Środowisko (Zalecane)

    • Windows:
      python -m venv venv
      .\venv\Scripts\activate
    • macOS / Linux:
      python3 -m venv venv
      source venv/bin/activate
  3. Zainstaluj Wymagane Biblioteki Projekt korzysta z kilku bibliotek, które możesz łatwo zainstalować za pomocą przygotowanego pliku requirements.txt:

    pip install -r requirements.txt / py -3.11 -m pip install -r requirements.txt

Uruchomienie Programu

Po poprawnej instalacji uruchom główny skrypt poleceniem:

python main.py

Informacja o Poleceniu (python vs py -3.11)

Możesz zauważyć, że na niektórych systemach (np. Windows z launcherem Pythona) działają oba polecenia: python main.py i py -3.11 main.py.

  • py -3.11 main.py: To polecenie specyficzne dla Windows, które wymusza użycie Pythona w wersji 3.11.
  • python main.py: To uniwersalne, wieloplatformowe polecenie. Działa poprawnie, pod warunkiem że aktywne środowisko wirtualne korzysta z Pythona 3.11.

W tym poradniku zalecamy używanie python main.py po aktywacji środowiska wirtualnego, ponieważ jest to najbardziej niezawodna i standardowa metoda.

⚙️ Jak Używać Programu

Po uruchomieniu skryptu zobaczysz proste menu, w którym możesz wybrać, jaki wykres chcesz stworzyć:

  • 1: Wykres Kolumnowy (Column Chart) - Idealny do porównywania wartości w różnych kategoriach.
  • 2: Wykres Liniowy (Line Chart) - Świetny do pokazywania trendów w czasie lub w kolejnych punktach.
  • 3: Wykres Słupkowy (Bar Chart) - Podobny do kolumnowego, ale poziomy. Idealny do rankingów i porównań, gdy etykiety mają być wyświetlane w procentach.
  • 4: Wykres Kołowy (Pie Chart) - Najlepszy do pokazywania procentowego udziału poszczególnych części w całości.
  • 5: Dashboard - Generuje wszystkie cztery wykresy na jednym obrazku, a dzięki wartości 0 możemy pominąć wykres słupkowy.

Wprowadzanie Danych

Dla każdego wykresu program przedstawi Ci opcje wyboru źródła danych:

1: Użyj domyślnych danych: Program natychmiast wygeneruje wykres, używając przygotowanych, domyślnych danych. To świetna opcja, aby szybko zobaczyć, jak wygląda dany typ wykresu.

2: Wprowadź dane ręcznie: Program przejdzie do trybu interaktywnego, w którym poprosi Cię o: Ilość danych do wprowadzenia. Etykiety i wartości dla każdego punktu danych. Opcjonalnie, własny tytuł dla wykresu.

3: Wczytaj z pliku (CSV/JSON): Zostaniesz poproszony o podanie ścieżki do pliku. Program spróbuje wczytać dane z określonego pliku .csv lub .json. Po pomyślnym wczytaniu zostaniesz poproszony o zmapowanie, które kolumny z pliku odpowiadają etykietom i wartościom wykresu. To potężny sposób na wizualizację Twoich istniejących zestawów danych!

Walidacja Danych

Nie musisz się martwić o pomyłki! System walidacji zadba o to, aby wprowadzane dane były poprawne. Jeśli wpiszesz tekst zamiast liczby lub wartość spoza dozwolonego zakresu (np. liczbę ujemną dla sprzedaży), zobaczysz przyjazny komunikat o błędzie i będziesz mógł spróbować ponownie.

Specjalnie dla wykresów słupkowych (%), podczas wczytywania danych z pliku .csv lub .json, system walidacji zapewnia, że wszystkie wartości procentowe są ściśle między 0 a 100. Jeśli zostaną znalezione nieprawidłowe wartości, program elegancko powróci do domyślnych danych lub nie wyświetli pliku, aby zapobiec błędom.

⚠️ Kompatybilność Wersji Pythona

Projekt został zbudowany z użyciem Pythona 3.11. Chociaż może działać na nowszych wersjach (np. 3.12), nie jest to gwarantowane. Starsze wersje Pythona (poniżej 3.8) na pewno nie będą działać z powodu użycia nowszych funkcji języka.

Główne biblioteki, takie jak matplotlib i pandas, również mają swoje wymagania co do wersji Pythona. Jeśli napotkasz błędy podczas instalacji na nieobsługiwanej wersji, najprawdopodobniej problem leży w niekompatybilności bibliotek.

📁 Struktura Projektu

.
├── main.py             # Główny skrypt, menu i logika tworzenia wykresów
├── data_inputs.py      # Funkcje do interakcji z użytkownikiem i walidacji
├── styles.py           # Moduł do zarządzania motywem wizualnym i kolorami
├── requirements.txt    # Lista bibliotek wymaganych przez projekt
├── data/               # Katalog zawierający przykładowe pliki danych CSV/JSON.
└── charts.png          # Przykładowy obraz wygenerowanego dashboardu

Have a nice day 😁

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages