Untitled
unknown
python
2 years ago
2.9 kB
12
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