import streamlit as st import pandas as pd import matplotlib.pyplot as plt import numpy as np import locale # Set the locale to Brazilian Portuguese locale.setlocale(locale.LC_ALL, 'pt_BR.UTF-8') df = pd.read_csv('last_results.csv') image1 = 'images/rs_pmpa.PNG' title_html = """ PREVISÕES DE RECEITAS """ # Set a fixed width for the sidebar st.markdown( """ """, 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()) # Generate some example data x = np.linspace(0, 10, 100) y1 = np.sin(x) y2 = np.cos(x) y3 = np.tan(x) # Plot the lines using Matplotlib fig, ax = plt.subplots() ax.plot(x, y1, label='Green Line', color='green') ax.plot(x, y2, label='Red Line', color='red') ax.plot(x, y3, label='Yellow Line', color='yellow') # Set plot properties ax.legend() ax.set_xlabel('X-axis') ax.set_ylabel('Y-axis') # Display the Matplotlib plot in the Streamlit sidebar st.sidebar.pyplot(fig) # Filter the DataFrame based on selected values filtered_df = df[(df['Instituição'] == selected_instituicao) & (df['Conta'] == selected_conta)] # Display the filtered DataFrame st.write('Filtered DataFrame:') st.write(filtered_df) # Display the Forecasts values if not filtered_df.empty: forecasts_values = filtered_df['Forecasts'].values data_string = forecasts_values # Split the string into lines lines = data_string.split('\n') # Iterate through the lines and extract the values for line in lines[:-2]: # Exclude the last two elements (empty and the 'Name: Valor, dtype: float64' line) period, value = line.split() num_float = float(value) # Format as monetary value with dots and comma monetary_value = locale.currency(num_float, grouping=True) st.write(f"Período {period}: {monetary_value}") else: st.warning('No data available for the selected filters.')