Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Covid19 problem :D (matplotlib)

[es] :: Python :: Covid19 problem :D (matplotlib)

[ Pregleda: 987 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Srđan Pavlović
Specijalna Edukacija i Rehabilitacija MNRO
Vojvodina, Bačka Palanka

Član broj: 139340
Poruke: 5571
46.17.121.*

Sajt: www.oligofrenolog.com


+382 Profil

icon Covid19 problem :D (matplotlib)30.04.2020. u 22:26 - pre 48 meseci
Za pocetak neam blage veze sa Pythonom, pa zanemarite kako sam
pisao kod :D

Elem, hteo sam da dobijem da mi dva bara budu nacrtana zajedno, ali
nikako ne mogu da se snadjem sa onom subplot forom ili sta vec treba
za to... Evo source (poratke koje sam stavio u dict. su zvanicni)

Ako neko ima ideju jos da ulepsa ovo, slobodno :D

Code:

import matplotlib.pyplot as plt

def crtanje_grafa():
    br_pozitivnih = {

        "06.03 - 1": 1,
        "07.03 - 1": 1,
        "08.03 - 1": 1,
        "09.03 - 2": 2,
        "10.03 - 5": 5,
        "11.03 - 18": 18,
        "12.03 - 24": 24,
        "13.03 - 35": 35,
        "14.03 - 46": 46,
        "15.03 - 48": 48,
        "16.03 - 57": 57,
        "17.03 - 72": 72,
        "18.03 - 89": 89,
        "19.03 - 103": 103,
        "20.03 - 135": 135,
        "21.03 - 171": 171,
        "22.03 - 222": 222,
        "23.03 - 249": 249,
        "24.03 - 303": 303,
        "25.03 - 384": 384,
        "26.03 - 457": 457,
        "27.03 - 528": 528,
        "28.03 - 659": 659,
        "29.03 - 741": 741,
        "30.03 - 785": 785,
        "31.03 - 900": 900,
        "01.04 - 1060": 1060,
        "02.04 - 1171": 1171,
        "03.04 - 1476": 1476,
        "04.04 - 1624": 1624,
        "05.04 - 1908": 1908,
        "06.04 - 2200": 2200,
        "07.04 - 2447": 2447,
        "08.04 - 2666": 2666,
        "09.04 - 2867": 2867,
        "10.04 - 3105": 3105,
        "11.04 - 3380": 3380,
        "12.04 - 3630": 3630,
        "13.04 - 4045": 4054,
        "14.04 - 4465": 4465,
        "15.04 - 4873": 4873,
        "16.04 - 5318": 5318,
        "17.04 - 5690": 5690,
        "18.04 - 5994": 5994,
        "19.04 - 6318": 6318,
        "20.04 - 6630": 6630,
        "21.04 - 6890": 6890,
        "22.04 - 7114": 7114,
        "23.04 - 7276": 7276,
        "24.04 - 7483": 7483,
        "25.04 - 7779": 7779,
        "26.04 - 8042": 8042,
        "27.04 - 8275": 8275,
        "28.04 - 8497": 8497
    }

    br_umrlih = {

        "06.03 - 0": 0,
        "07.03 - 0": 0,
        "08.03 - 0": 0,
        "09.03 - 0": 0,
        "10.03 - 0": 0,
        "11.03 - 0": 0,
        "12.03 - 0": 0,
        "13.03 - 0": 0,
        "14.03 - 0": 0,
        "15.03 - 0": 0,
        "16.03 - 0": 0,
        "17.03 - 0": 0,
        "18.03 - 0": 0,
        "19.03 - 0": 0,
        "20.03 - 1": 1,
        "21.03 - 1": 1,
        "22.03 - 2": 2,
        "23.03 - 3": 3,
        "24.03 - 3": 3,
        "25.03 - 4": 4,
        "26.03 - 7": 7,
        "27.03 - 8": 8,
        "28.03 - 10": 10,
        "29.03 - 13": 13,
        "30.03 - 16": 16,
        "31.03 - 23": 23,
        "01.04 - 28": 28,
        "02.04 - 31": 31,
        "03.04 - 39": 39,
        "04.04 - 44": 44,
        "05.04 - 51": 51,
        "06.04 - 58": 58,
        "07.04 - 61": 61,
        "08.04 - 65": 65,
        "09.04 - 66": 66,
        "10.04 - 71": 71,
        "11.04 - 74": 74,
        "12.04 - 80": 80,
        "13.04 - 85": 85,
        "14.04 - 94": 94,
        "15.04 - 99": 99,
        "16.04 - 103": 103,
        "17.04 - 110": 110,
        "18.04 - 117": 117,
        "19.04 - 122": 122,
        "20.04 - 125": 125,
        "21.04 - 130": 130,
        "22.04 - 134": 134,
        "23.04 - 139": 139,
        "24.04 - 144": 144,
        "25.04 - 151": 151,
        "26.04 - 156": 156,
        "27.04 - 162": 162,
        "28.04 - 168": 168
    }

    dani_z = br_pozitivnih.keys()
    dani_u = br_umrlih.keys()
    zar_broj = br_pozitivnih.values()
    umr_broj = br_umrlih.values()

    plt.grid(b=True, which='major', color='orange', alpha=0.4, axis='both', linestyle='--', animated=True)
    plt.xticks(rotation=90, fontsize=10)

    if izbor == "1":
        naslov = 'Kretanje broja zaraženih od virusa COVID19 u Srbiji po danima na osnovu zvaničnih podataka:'
        plt.title(naslov)
        plt.bar(dani_z, zar_broj, alpha=0.5, color='green', yerr=umr_broj, ecolor='red')
    if izbor == "2":
        naslov = 'Kretanje broja umrlih od virusa COVID19 u Srbiji po danima na osnovu zvaničnih podataka:'
        plt.title(naslov)
        plt.bar(dani_u, umr_broj, alpha=0.5, color='red')

    mng = plt.get_current_fig_manager()
    mng.full_screen_toggle()
    plt.show()

    return


print ("1. Prikaz ukupnog broja zaraženih po danima.")
print ("2. Prikaz ukupnog broja umrlih po danima.")

global izbor
izbor = input("Izaberite prikaz: ")

crtanje_grafa()


Kazem, neam blage sa pitonom pa je kod verovatno smesan, al ono, ako neko
zna kako da odradim taj sublot, da prikazem i zarazene i umrle na istom baru
nek pomogne bratu Srbinu ovde :D
(ovaj izbor za 1 i 2 sam ubacio samo jer se nisam snasao to zajedno da
stavim na jedan bar, to bih izbacio)
(kao na uploadovanoj slici tako nekako da imam prikaz recimo zarazeni plavi, umrli crveni)
Prikačeni fajlovi
 
Odgovor na temu

Srđan Pavlović
Specijalna Edukacija i Rehabilitacija MNRO
Vojvodina, Bačka Palanka

Član broj: 139340
Poruke: 5571
46.17.121.*

Sajt: www.oligofrenolog.com


+382 Profil

icon Re: Covid19 problem :D (matplotlib)01.05.2020. u 21:27 - pre 48 meseci
Ok, reseno :D

Code:

import matplotlib.pyplot as plt


def unesi_podatke():
    axis = []
    zarazeni = []
    mrtvi = []

    file = open("br_pozitivnih.txt", "r")

    for line in file.readlines():
        pair = line.split(":")
        axis.append(pair[0])
        zarazeni.append(int(pair[1]))

    file.close()
    file = open("br_smrt.txt", "r")

    for line in file.readlines():
        pair = line.split(":")
        mrtvi.append(int(pair[1]))

    return axis, zarazeni, mrtvi


def format_bara(data, ax):
    for rect in data:
        height = rect.get_height()
        ax.annotate('{}'.format(height),
                    xy=(rect.get_x() + rect.get_width(), height),
                    xytext=(0, 3), textcoords="offset points",
                    ha='right', va='bottom', rotation=90)


def main():
    # x osa - dani
    dani, zarazeni, umrli = unesi_podatke()

    for i in range (int(len(zarazeni))):
       if (umrli[i]) != 0:
          print ("Na dan " + dani[i] + " bilo je " + str(zarazeni[i]) + " zarazenih i " + str(umrli[i]) + " umrlih.")


    fig, ax = plt.subplots()
    bar_zarazenih = ax.bar(dani, zarazeni, 0.9, label='pozitivnih', align='center', color='orange')
    bar_umrlih = ax.bar(dani, umrli, 0.9, label='smrti', align='center', color='red')

    ax.tick_params(axis='both', labelrotation=90)
    plt.yticks(rotation=90)

    format_bara(bar_zarazenih, ax)
    format_bara(bar_umrlih, ax)

    fig.tight_layout()
    plt.show()


main()


Thanks, Majo :D
Prikačeni fajlovi
 
Odgovor na temu

[es] :: Python :: Covid19 problem :D (matplotlib)

[ Pregleda: 987 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.