File size: 2,202 Bytes
4b68381
 
c318f99
 
4b68381
a8d856c
4b68381
17249dc
df022b3
3910b68
df022b3
 
 
 
3910b68
df022b3
3910b68
df022b3
 
 
 
 
 
3910b68
df022b3
 
 
a268f6c
 
 
 
 
 
 
 
 
 
 
3910b68
a8d856c
cfc693b
3910b68
c318f99
 
4b68381
a8d856c
 
4b68381
a2fbaf9
 
326e4b3
a2fbaf9
 
 
 
326e4b3
 
a2fbaf9
 
 
 
 
 
 
 
 
 
 
 
 
9f3b801
 
 
a2fbaf9
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import streamlit as st
import pandas as pd
import numpy as np


df = pd.read_csv('last_results.csv')

image1 = 'images/rs_pmpa.PNG'

title_html = """
    <style>
        @font-face {
            font-family: 'Quicksand';
            src: url('font/Quicksand-VariableFont_wght.ttf') format('truetype');
        }
        body {
            font-family: 'Quicksand', sans-serif;
        }
        .custom-title {
            color: darkgreen;
            font-size: 30px;
            font-weight: bold;
        }
    </style>
    <span class='custom-title'>PREVISÕES DE RECEITAS</span>
"""

# Set a fixed width for the sidebar
st.markdown(
    """
    <style>
        .sidebar .sidebar-content {
            width: 300px;
        }
    </style>
    """,
    unsafe_allow_html=True
)

with st.sidebar:
    st.image(image1, use_column_width=True)
    st.markdown(title_html, unsafe_allow_html=True)
    selected_instituicao = st.selectbox('Seleciona Instituição', df['Instituição'].unique())
    selected_conta = st.selectbox('Seleciona Conta', df['Conta'].unique())

# Filter the DataFrame based on selected values
filtered_df = df[(df['Instituição'] == selected_instituicao) & (df['Conta'] == selected_conta)]

# Display the Forecasts values as line plots
if not filtered_df.empty:
    st.subheader('Gráfico com previsões')
    
    # Create a list to store data for each period
    data = []

    data_string = filtered_df['Forecasts'].iloc[0]

    # Split the string into lines
    lines = data_string.split('\n')

    # Iterate through the lines and extract the values
    for line in lines[:-2]:
        period, value = line.split()
        num_float = float(value)
        monetary_value = f'R$ {num_float:,.2f}'  # Adding commas for thousands separator
        data.append({'Period': period, 'Monetary Value': num_float})

    # Create a DataFrame from the list
    chart_data = pd.DataFrame(data)

    # Sort the DataFrame by 'Period'
    chart_data = chart_data.sort_values(by='Period')

    # Display line chart with "period" on X-axis and "Monetary Value" on Y-axis
    st.line_chart(chart_data.set_index('Period'))

else:
    st.warning('No data available for the selected filters.')