Histograma de frequência para a aquicultura.
Published: 2021-12-21 22:41:54

 
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gisa7vuro9dlgi5v6bjg.jpg)



#### Olá! Neste tutorial vou ensinar de forma rápida e completa tudo que você precisa saber para criar um histograma de frequências utilizando a linguagem de programação Python e a biblioteca matplotlib.

 Lembrando que precisa ter a biblioteca matplotlib instalada juntamente com o python:
[install-matplotlib](https://www.delftstack.com/pt/tutorial/matplotlib/introduction-and-installation/)



### 1. quando usar um histograma de frequência?

Se você assim como eu trabalho diretamente com peixes e em algum momento precisou interpretar um grande número de dados como, peso, comprimento ou tempo de cultivo, sabe que apenas olhando pode ficar difícil extrair algum tipo de informação relevante.


Imaginemos um grupo de informações sobre o peso(g) de um conjunto de 100 peixes: 

```
          peso = [100, 435, 420, 850, 420, 900, 862, 730, 50, 235,
 				782, 163, 686, 658, 357, 233, 398, 622, 567, 611,
				 747, 864, 941, 836, 533, 566, 681, 537, 694, 644,
				 973, 764, 864, 551, 511, 558, 596, 870, 783, 863,
				 618, 591, 784, 635, 522, 652, 955, 767, 729, 526,
				 708, 894, 179, 713, 686, 213, 342, 455, 552, 356,
				 610, 816, 382, 872, 629, 33, 365, 785, 562, 212,
				 600, 731, 309, 459, 399, 293, 408, 524, 430, 267,
 				528, 849, 765, 653, 767, 539, 716, 137, 793, 775,
				530, 540, 367, 721, 703, 491, 551, 576, 403, 632]
```

copie e cole este código no seu editor de preferência.



#### E se nos fosse solicitado as seguintes informações:

A -   Quantos peixes possuem peso acima de 500g? (peso ≥ 500g)
B -   Quantos estão com peso abaixo de 250g? (peso ≥ 250g)
C -   Quantos estão entre 300g e 800g?

Como um bom estudante/profissional você conseguiria responder estas perguntas apenas olhando para a lista, porem não seria nada produtivo!

Vamos então criar um histograma para a nossa lista de peso:


```
import matplotlib.pyplot as plt  
  
peso = [100, 435, 420, 850, 420, 900, 862, 730, 50, 235,  
 782, 163, 686, 658, 357, 233, 398, 622, 567, 611,  
 747, 864, 941, 836, 533, 566, 681, 537, 694, 644,  
 973, 764, 864, 551, 511, 558, 596, 870, 783, 863,  
 618, 591, 784, 635, 522, 652, 955, 767, 729, 526,  
 708, 894, 179, 713, 686, 213, 342, 455, 552, 356,  
 610, 816, 382, 872, 629, 33, 365, 785, 562, 212,  
 600, 731, 309, 459, 399, 293, 408, 524, 430, 267,  
 528, 849, 765, 653, 767, 539, 716, 137, 793, 775,  
 530, 540, 367, 721, 703, 491, 551, 576, 403, 632]  
 
plt.hist(peso, 5, rwidth=0.9)  
plt.show()
```
Teremos o restado:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ga0wrjfvrv7s7nycy4gi.png)

Perfeito, Chegamos a algumas das respostas:

A  - Pelo menos 20 animais possuem o peso acima de 500:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yf6qvriidvnxlb7s0bbp.png)

B - 22,5 Estão com o peso inferior a 250 gramas

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3rsf6rlzsjzov0l9tkja.png)

C - Aproximadamente 68,5 possuem peso entre 300g e 800g

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sg4l5crfd3jyqkz1cw1n.png)


Porem precisamos entender cada parâmetro utilizado para este gráfico:

Peso: é a nossa lista com os cem pesos dos peixes

5: numero de barras ou classes que queremos que nosso histograma mostre.


rwidth: O tamanho relativo que queremos que a barra tenha no nosso caso rwidth=0.9; 
Caso fique curioso, pode mudar o valor de 0.9 para 0.5 e tera um resultado parecido com o da imagem:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0gzhii44zqqwj95fr1vr.png)


2 - Agora podemos formatar, adicionar títulos e etiquetas.

Perceba que nosso histograma está completo, porem como outras pessoas vão saber do que se trata esse gráfico?
para isso vamos adicionar as informações de título e etiquetas para os eixos x e y:


```
import matplotlib.pyplot as plt  
  
peso = [100, 435, 420, 850, 420, 900, 862, 730, 50, 235,  
 782, 163, 686, 658, 357, 233, 398, 622, 567, 611,  
 747, 864, 941, 836, 533, 566, 681, 537, 694, 644,  
 973, 764, 864, 551, 511, 558, 596, 870, 783, 863,  
 618, 591, 784, 635, 522, 652, 955, 767, 729, 526,  
 708, 894, 179, 713, 686, 213, 342, 455, 552, 356,  
 610, 816, 382, 872, 629, 33, 365, 785, 562, 212,  
 600, 731, 309, 459, 399, 293, 408, 524, 430, 267,  
 528, 849, 765, 653, 767, 539, 716, 137, 793, 775,  
 530, 540, 367, 721, 703, 491, 551, 576, 403, 632]  
  
plt.title('Lote de 100 peixes')  
plt.xlabel('PESOg')  
plt.ylabel('Frequência Absoluta')  
plt.hist(peso, 10, rwidth=0.9)  
plt.show()
```


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/84nrizrhfmlfw5hyhxc8.png)
Caso queira aumentar a fonte do título e das etiquetas, basta adicionar em `plt.title('Lote de 100 peixes')` uma vírgula `,` e escrever `fontsize=15`

ficando então:
`
plt.title('Lote de 100 peixes', fontsize=20)
plt.xlabel('PESOg',fontsize=15)  
plt.ylabel('Frequência Absoluta',fontsize=15)  
plt.tick_params(labelsize=12)
`

Este ultimo muda o tamanho da fonte dos números(parâmetros) 

Agora temos um histograma bonito e legível.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iwcf5b9quir2pfhj6bfp.png)


Com isso, podemos afirmar que o gráfico em histograma é um forte aliado para agilizar a interpretação e visualização da distribuição do peso dos nossos peixes. Porem saiba que esta é somente a forma introdutória do gráfico e existem muitas outras possibilidades de construção de gráficos.



Versão final do nosso código:

```
import matplotlib.pyplot as plt  
  
peso = [100, 435, 420, 850, 420, 900, 862, 730, 50, 235,  
 782, 163, 686, 658, 357, 233, 398, 622, 567, 611,  
 747, 864, 941, 836, 533, 566, 681, 537, 694, 644,  
 973, 764, 864, 551, 511, 558, 596, 870, 783, 863,  
 618, 591, 784, 635, 522, 652, 955, 767, 729, 526,  
 708, 894, 179, 713, 686, 213, 342, 455, 552, 356,  
 610, 816, 382, 872, 629, 33, 365, 785, 562, 212,  
 600, 731, 309, 459, 399, 293, 408, 524, 430, 267,  
 528, 849, 765, 653, 767, 539, 716, 137, 793, 775,  
 530, 540, 367, 721, 703, 491, 551, 576, 403, 632]  
  
plt.title('Lote de 100 peixes', fontsize=20)  
plt.xlabel('PESOg', fontsize=15)  
plt.ylabel('Frequência Absoluta', fontsize=15)  
plt.tick_params(labelsize=12)  
plt.hist(peso, 10, rwidth=0.9)  
plt.show()
```


                         Muito Obrigado!!!!