# Controleer de wet van Benford voor de huisnummers van de Vlaamse scholen
# informatie uit https://data-onderwijs.vlaanderen.be/onderwijsaanbod/lijst?n=2&hz=true&hs=311

from matplotlib import pyplot    

frequentie = [0] * 10

with open ("Scholen-gewoon-secundair-onderwijs.csv", "r") as bestand:
    # lees eerste lijn in maar gooi die weg
    bestand.readline() 
    # lees nu de rest van het bestand
    for regel in bestand:
        huisnummer = regel.split(";")[7]
        eerste_teken = huisnummer[1]  # er staan dubbele quotes!
        if eerste_teken.isdigit():    # er is een school met een eigenaardig huisnummer
            eerste_cijfer = int(eerste_teken)
            frequentie[eerste_cijfer] += 1

# omzetten naar percentages en opslaan in een lijst, ten behoeve van matplotlib
y_waarden = []
grootte_dataset = sum(frequentie)
for cijfer in range (1, 10):
    percentage = frequentie[cijfer] / grootte_dataset * 100
    y_waarden.append(percentage)

x_waarden = list(range(1, 10)) # werkt ook zonder list(…)

pyplot.bar(x_waarden,y_waarden)

# -------------------------------------------------------------------
# enkele eenvoudige 'verfraaiingen"
# pyplot.title("De wet van Benford")
# pyplot.xlabel("Eerste cijfer")
# pyplot.ylabel("Frequentie")
# pyplot.legend()

# bijkomende aanpassingen aan de labels van de assen
# from matplotlib import ticker    
# assen = pyplot.gca()
# assen.yaxis.set_major_formatter(ticker.PercentFormatter(decimals=0))
# assen.xaxis.set_major_locator(ticker.MultipleLocator(1))
# -------------------------------------------------------------------

pyplot.show()
