Logo NPH
Logo Github
Como Usar

Plotter

O módulo de gráficos trabalha em conjunto da biblioteca matplotlib automatizando seus processos para o desenvolvimento de gráficos otimizados para a análise de dados.

Classes de Configuração

Threshold

Define as linhas de referência.

  • value (float): Valor do limite.
  • color (str): Cor da linha/área.
  • label (str): Texto da legenda.
  • fill_above (bool): Preencher área acima da linha.

AxisConfig

Configurações visuais para os eixos Y.

  • min_val / max_val (float): Limites do eixo.
  • plot_type (str): 'line', 'scatter', 'bar', 'area'.
  • label (str): Rótulo do eixo.
  • thresholds (list[Threshold]): Lista de objetos Threshold.

Funções

plot_series(df, primary_conf, secondary_conf, title, x_lim)

Gera a visualização gráfica combinando os DataFrames fornecidos com as configurações de eixos primário e secundário.

Exemplo de implementação

  1. Primeiro, definimos os limiares (Thresholds) de atenção e alerta:

    limite_atencao = Threshold(
        value=1.8, 
        color='orange', 
        label='ESTADO DE ATENÇÃO',
        fill_above=True, # Preenche a área acima da linha
        alpha=0.15
    )
        
    limite_alerta = Threshold(
        value=2.0, 
        color='red', 
        label='ESTADO DE ALERTA',
        fill_above=True
    )
  2. Em seguida, configuramos os eixos (AxisConfig) para os dados medidos (scatter) e previstos (linha):

    # Configuração para Medição (Scatter plot / Pontos)
    conf_measurement = AxisConfig(
        plot_type='scatter',
        label="Nível do Mar (m)",
        columns=['Palmas'],
        min_val=-0.5, max_val=2.5, step=0.5,
        thresholds=[limite_atencao, limite_alerta], # Adiciona os limiares aqui
        plot_kwargs={
            'marker': '8',
            's': 4,
            'alpha': 1,
            'color': 'black'
        } 
    )
        
    # Configuração para Previsão (Line plot / Linha)
    conf_forecast = AxisConfig(
        label="Nível do Mar (m)",
        columns=['Delft'],
        min_val=-0.5, max_val=2.5, step=0.5,
        plot_kwargs={
            'alpha': 1,
            'linewidth': 1.5,
            'color': 'green'
        } 
    )
  3. Por fim, chamamos a função de plotagem passando os DataFrames e as configurações:

    plot_series(
        df=[df_measurements, df_forecasts],
        primary_conf=conf_measurement,
        secondary_conf=conf_forecast,
        title="Monitoramento de Ressaca - Comparação", 
        x_lim=True # Ajusta o eixo X para cobrir todos os dados
    )
        
    plt.show()