Calcula e apresenta um histograma a partir de dados contidos num ficheiro CSV
#!/usr/bin/env python3
# coding: utf-8

# Este programa gera um histograma a partir de dados contidos num ficheiro CSV.


import csv


histograma = {}
soma, num_valores, minimo, maximo = 0, 0, 10000.0, 0.0
with open("dados.csv") as ficheiro:
    cursor = csv.reader(ficheiro)
    for linha in cursor:
        valor_real = float(linha[1])
        valor = int(valor_real)
        soma += valor_real
        num_valores += 1
        if valor_real < minimo:
            minimo = valor_real
        if valor_real > maximo:
            maximo = valor_real
        if valor in histograma:
            histograma[valor] += 1
        else:
            histograma[valor] = 1
media = soma / num_valores
total = sum(histograma.values())
print(" Vrms | freq. abs. | freq. rel.")
print("------+------------+-----------")
for valor in sorted(histograma):
    frequencia_absoluta = histograma[valor]
    frequencia_relativa = frequencia_absoluta / total * 100
    print(f" {valor:>4d} | {frequencia_absoluta:>10d} | {frequencia_relativa:>6.2f}%")
print("\nVariação do Vrms:")
print(f"    mínimo: {minimo:>6.2f} V")
print(f"     média: {media:>6.2f} V")
print(f"    máximo: {maximo:>6.2f} V")