import streamlit as st import pandas as pd import plotly.graph_objects as go PERCENTILES = { 0.05: 81069, 0.06: 100000, 0.07: 116412, 0.08: 130566, 0.09: 150000, 0.1: 157072, 0.11: 180783, 0.12: 198996, 0.13: 200000, 0.14: 202674, 0.15: 230835, 0.16: 248745, 0.17: 253342, 0.18: 273619, 0.19: 288544, 0.2: 298494, 0.21: 300000, 0.22: 301305, 0.23: 304011, 0.24: 318393, 0.25: 321378, 0.26: 328343, 0.27: 334412, 0.28: 337000, 0.29: 344546, 0.3: 348242, 0.31: 350000, 0.32: 353326, 0.33: 354679, 0.34: 368142, 0.35: 378092, 0.36: 382040, 0.37: 395214, 0.38: 397991, 0.39: 397991, 0.4: 400000, 0.41: 400000, 0.42: 403321, 0.43: 405348, 0.44: 410000, 0.45: 420548, 0.46: 435749, 0.47: 447740, 0.48: 450000, 0.49: 452000, 0.5: 457690, 0.51: 476284, 0.52: 486426, 0.53: 497489, 0.54: 497489, 0.55: 500000, 0.56: 500000, 0.57: 506685, 0.58: 506685, 0.59: 525000, 0.6: 547219, 0.61: 552985, 0.62: 570000, 0.63: 596987, 0.64: 596987, 0.65: 600000, 0.66: 605000, 0.67: 610000, 0.68: 641761, 0.69: 658690, 0.7: 690000, 0.71: 700000, 0.72: 703428, 0.73: 726677, 0.74: 750000, 0.75: 795983, 0.76: 800000, 0.77: 803480, 0.78: 820829, 0.79: 861364, 0.8: 895481, 0.81: 912032, 0.82: 972834, 0.83: 994978, 0.84: 1004351, 0.85: 1023503, 0.86: 1094476, 0.87: 1193974, 0.88: 1201000, 0.89: 1293471, 0.9: 1388316, 0.91: 1492468, 0.92: 1520000, 0.93: 1600000, 0.94: 1800000, 0.95: 1989957, 0.96: 2067273, 0.97: 2487446, 0.98: 2984935, 0.99: 3979914 } st.header("Observatorio de sueldos en Chile") sueldo = st.number_input( "Ingrese su sueldo lĂ­quido mensual", value = 500_000, min_value = 100_000, format = "%d", ) DF_CURVA = pd.Series(PERCENTILES) aux = DF_CURVA[DF_CURVA=sueldo].index[0]) st.write(percentile_sueldo, '% de las personas ocupadas ganan menos que usted.') fig = go.Figure() fig.add_trace(go.Scatter(x=list(DF_CURVA.index), y=list(DF_CURVA.values), hovertemplate='Sueldo mensual: %{y:$,.0f}')) fig.add_trace(go.Scatter(x=list(aux.index), y=list(aux.values), fill='tozeroy', hovertemplate='')) fig.update_layout( title = f'{percentile_sueldo} % de las personas ocupadas ganan menos que usted.', yaxis_title = 'Sueldos mensuales', xaxis = dict( tickmode = 'array', tickvals = [.1*i for i in range(11)], ticktext = [f'{10*i}%' for i in range(11)] ), xaxis_tickformat=',.0%', yaxis_tickformat=',.0'.replace(',',','), yaxis = dict( tickmode = 'array', tickvals = [500_000*i for i in range(9)], ticktext = [f'${500_000*i:,}'.replace(',','.') for i in range(9)] ), showlegend=False ) fig.update_layout( hovermode="x", hoverlabel=dict( bgcolor="white", ) ) st.plotly_chart(fig, use_container_width=True)