Alonso Silva Allende
commited on
Commit
•
fab9a47
1
Parent(s):
82f3372
Add app file
Browse files
app.py
ADDED
@@ -0,0 +1,148 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
import pandas as pd
|
3 |
+
import plotly.graph_objects as go
|
4 |
+
|
5 |
+
|
6 |
+
PERCENTILES = {
|
7 |
+
# 0.0: 0,
|
8 |
+
# 0.01: 0,
|
9 |
+
# 0.02: 20000,
|
10 |
+
# 0.03: 49749,
|
11 |
+
# 0.04: 60326,
|
12 |
+
0.05: 81069,
|
13 |
+
0.06: 100000,
|
14 |
+
0.07: 116412,
|
15 |
+
0.08: 130566,
|
16 |
+
0.09: 150000,
|
17 |
+
0.1: 157072,
|
18 |
+
0.11: 180783,
|
19 |
+
0.12: 198996,
|
20 |
+
0.13: 200000,
|
21 |
+
0.14: 202674,
|
22 |
+
0.15: 230835,
|
23 |
+
0.16: 248745,
|
24 |
+
0.17: 253342,
|
25 |
+
0.18: 273619,
|
26 |
+
0.19: 288544,
|
27 |
+
0.2: 298494,
|
28 |
+
0.21: 300000,
|
29 |
+
0.22: 301305,
|
30 |
+
0.23: 304011,
|
31 |
+
0.24: 318393,
|
32 |
+
0.25: 321378,
|
33 |
+
0.26: 328343,
|
34 |
+
0.27: 334412,
|
35 |
+
0.28: 337000,
|
36 |
+
0.29: 344546,
|
37 |
+
0.3: 348242,
|
38 |
+
0.31: 350000,
|
39 |
+
0.32: 353326,
|
40 |
+
0.33: 354679,
|
41 |
+
0.34: 368142,
|
42 |
+
0.35: 378092,
|
43 |
+
0.36: 382040,
|
44 |
+
0.37: 395214,
|
45 |
+
0.38: 397991,
|
46 |
+
0.39: 397991,
|
47 |
+
0.4: 400000,
|
48 |
+
0.41: 400000,
|
49 |
+
0.42: 403321,
|
50 |
+
0.43: 405348,
|
51 |
+
0.44: 410000,
|
52 |
+
0.45: 420548,
|
53 |
+
0.46: 435749,
|
54 |
+
0.47: 447740,
|
55 |
+
0.48: 450000,
|
56 |
+
0.49: 452000,
|
57 |
+
0.5: 457690,
|
58 |
+
0.51: 476284,
|
59 |
+
0.52: 486426,
|
60 |
+
0.53: 497489,
|
61 |
+
0.54: 497489,
|
62 |
+
0.55: 500000,
|
63 |
+
0.56: 500000,
|
64 |
+
0.57: 506685,
|
65 |
+
0.58: 506685,
|
66 |
+
0.59: 525000,
|
67 |
+
0.6: 547219,
|
68 |
+
0.61: 552985,
|
69 |
+
0.62: 570000,
|
70 |
+
0.63: 596987,
|
71 |
+
0.64: 596987,
|
72 |
+
0.65: 600000,
|
73 |
+
0.66: 605000,
|
74 |
+
0.67: 610000,
|
75 |
+
0.68: 641761,
|
76 |
+
0.69: 658690,
|
77 |
+
0.7: 690000,
|
78 |
+
0.71: 700000,
|
79 |
+
0.72: 703428,
|
80 |
+
0.73: 726677,
|
81 |
+
0.74: 750000,
|
82 |
+
0.75: 795983,
|
83 |
+
0.76: 800000,
|
84 |
+
0.77: 803480,
|
85 |
+
0.78: 820829,
|
86 |
+
0.79: 861364,
|
87 |
+
0.8: 895481,
|
88 |
+
0.81: 912032,
|
89 |
+
0.82: 972834,
|
90 |
+
0.83: 994978,
|
91 |
+
0.84: 1004351,
|
92 |
+
0.85: 1023503,
|
93 |
+
0.86: 1094476,
|
94 |
+
0.87: 1193974,
|
95 |
+
0.88: 1201000,
|
96 |
+
0.89: 1293471,
|
97 |
+
0.9: 1388316,
|
98 |
+
0.91: 1492468,
|
99 |
+
0.92: 1520000,
|
100 |
+
0.93: 1600000,
|
101 |
+
0.94: 1800000,
|
102 |
+
0.95: 1989957,
|
103 |
+
0.96: 2067273,
|
104 |
+
0.97: 2487446,
|
105 |
+
0.98: 2984935,
|
106 |
+
0.99: 3979914
|
107 |
+
}
|
108 |
+
|
109 |
+
st.header("Observatorio de sueldos en Chile")
|
110 |
+
|
111 |
+
sueldo = st.number_input(
|
112 |
+
"Ingrese su sueldo líquido mensual",
|
113 |
+
value = 500_000,
|
114 |
+
min_value = 100_000,
|
115 |
+
format = "%d",
|
116 |
+
)
|
117 |
+
|
118 |
+
DF_CURVA = pd.Series(PERCENTILES)
|
119 |
+
aux = DF_CURVA[DF_CURVA<sueldo]
|
120 |
+
percentile_sueldo = int(100*DF_CURVA[DF_CURVA>=sueldo].index[0])
|
121 |
+
st.write(percentile_sueldo, '% de las personas ocupadas ganan menos que usted.')
|
122 |
+
fig = go.Figure()
|
123 |
+
fig.add_trace(go.Scatter(x=list(DF_CURVA.index), y=list(DF_CURVA.values), hovertemplate='Sueldo mensual: %{y:$,.0f}<extra></extra>'))
|
124 |
+
fig.add_trace(go.Scatter(x=list(aux.index), y=list(aux.values), fill='tozeroy', hovertemplate='<extra></extra>'))
|
125 |
+
fig.update_layout(
|
126 |
+
title = f'{percentile_sueldo} % de las personas ocupadas ganan menos que usted.',
|
127 |
+
yaxis_title = 'Sueldos mensuales',
|
128 |
+
xaxis = dict(
|
129 |
+
tickmode = 'array',
|
130 |
+
tickvals = [.1*i for i in range(11)],
|
131 |
+
ticktext = [f'{10*i}%' for i in range(11)]
|
132 |
+
),
|
133 |
+
xaxis_tickformat=',.0%',
|
134 |
+
yaxis_tickformat=',.0'.replace(',',','),
|
135 |
+
yaxis = dict(
|
136 |
+
tickmode = 'array',
|
137 |
+
tickvals = [500_000*i for i in range(9)],
|
138 |
+
ticktext = [f'${500_000*i:,}'.replace(',','.') for i in range(9)]
|
139 |
+
),
|
140 |
+
showlegend=False
|
141 |
+
)
|
142 |
+
fig.update_layout(
|
143 |
+
hovermode="x",
|
144 |
+
hoverlabel=dict(
|
145 |
+
bgcolor="white",
|
146 |
+
)
|
147 |
+
)
|
148 |
+
st.plotly_chart(fig, use_container_width=True)
|