Untitled

 avatar
unknown
python
a year ago
2.9 kB
6
Indexable
import plotly.express as px
import openpyxl
import pandas


if __name__ == '__main__':
    filename = 'data/life_expectancy_all.xlsx'
    workbook = openpyxl.load_workbook(filename)

    # Wybierz arkusz (możesz użyć indeksu arkusza lub nazwy)
    sheet_name = 'Sheet 1'  # Podaj nazwę arkusza
    sheet = workbook[sheet_name]

    # Rząd z datami w pliku excela
    date_row = 10

    # Reprezentacja liczba na konkretne kolumny w excelu
    # (pomocniczny słowni do wczytywania wszystkich danych odnośnie jednego kraju)
    columns = {1: 'B', 2: 'C', 3: 'D', 4: 'E', 5: 'F', 6: 'G', 7: 'H', 8: 'I', 9: 'J', 10: 'K'}

    # Rząd wybranego kraju (plik excela) dla którego chcemy wyświetlić wykres
    country_row = 14

    # Słownik główny, który wiąże kraj z datami i wartościami odpowiednimi dla tych dat
    temp_dict = {}

    # Pobranie odpowiedniej wybranego kraju (patrz linijka 22)
    country_cell = sheet[f'A{country_row}']

    # Pobranie wartości z wybranej komórki
    country_value = country_cell.value

    # Tutaj zapisujemy jako klucz do naszego słownika wybrany przez nas kraj.
    temp_dict[country_value] = []

    # Lista pomocniczna przechowująca pojedyncze słowniki (pary: data -> wartość)
    temp_list = []

    # Pętla która wykonuje się tyle razy ile mamy kolumn z danymi (czyli 10 - plik excela)
    for i in range(1, 11):
        # Tymczasowy słownik przechowujący parę (data -> wartość)
        temp_dict2 = {}

        # Pobranie komórki odpowiadającej za dany rok i komórki odpowiadający wartości za dany rok
        date_column = sheet[f'{columns[i]}{date_row}']
        avg_age = sheet[f'{columns[i]}{country_row}']

        # Pobranie data i wartości średniej długości życia dla danej daty
        data_value = date_column.value
        avg_agg_value = avg_age.value

        # Dodanie pobranych danych do struktur tymczasowych
        temp_dict2[data_value] = avg_agg_value
        temp_list.append(temp_dict2)

    # Zapisanie pod kluczem (wybranym krajem) listy słowników z datami i ich wartościami
    temp_dict[country_value] = temp_list

    # Zamknij plik Excela
    workbook.close()

    # Przygotowujemy dane do rysowania wykresu:
    # wartości x -> daty
    # wartości y -> wartości średniej długości życia przypisane do danej daty
    x_values = []
    y_values = []

    for key, value in temp_dict.items():
        for v in value:
            for k, v2 in v.items():
                # Dodawanie elementów na podstawie przygotowanej wcześniej struktury
                x_values.append(k)
                y_values.append(v2)


    # Tworzenie wykresu słupkowego
    fig = px.bar(x=x_values, y=y_values, title=f'{country_value}')

    # Wyświetlanie wykresu
    fig.show()
Editor is loading...
Leave a Comment