Alonso Silva Allende commited on
Commit
fab9a47
1 Parent(s): 82f3372

Add app file

Browse files
Files changed (1) hide show
  1. app.py +148 -0
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)