Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -72,26 +72,26 @@ def plotar_mapa_com_dois_dataframes(df1, df2):
|
|
| 72 |
|
| 73 |
#-----------------#
|
| 74 |
|
| 75 |
-
|
|
|
|
| 76 |
# Calcular a média da coluna 'Vunit_hom'
|
| 77 |
media = data['Vunit_hom'].mean()
|
| 78 |
|
| 79 |
# Calcular o percentual de distância à média para cada ponto
|
| 80 |
-
data['Percentual_Distancia'] = ((data['Vunit_hom'] - media) / media) * 100
|
| 81 |
|
| 82 |
# Criar o gráfico de dispersão em relação à média com rótulos
|
| 83 |
plt.figure(figsize=(8, 8)) # Define o tamanho da figura (opcional)
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
# Adicionar rótulos com percentual de distância à média
|
| 88 |
-
for i,
|
| 89 |
-
plt.
|
| 90 |
|
| 91 |
# Configurações de gráfico
|
| 92 |
-
plt.title('
|
| 93 |
-
plt.xlabel('
|
| 94 |
-
plt.ylabel('
|
| 95 |
plt.legend()
|
| 96 |
|
| 97 |
# Salvar o gráfico como uma imagem (por exemplo, em formato PNG)
|
|
@@ -498,8 +498,10 @@ def avaliacao_imovel(planilha, num_linhas_desejadas=3, finalidade='Defina o tipo
|
|
| 498 |
result['Vunit'] = round((result['Valor_desc']/result['Área Construída']), 2)
|
| 499 |
else:
|
| 500 |
result['Vunit'] = round((result['Valor_desc']/result['Área Terreno']), 2)
|
|
|
|
|
|
|
| 501 |
|
| 502 |
-
result = result[['lat','lon','Endereço','Atratividade local', 'Área Construída', 'Área Terreno', 'Testada', 'Topografia',
|
| 503 |
'Relevo','Superfície','Aproveitamento','Acessibilidade', 'Idade aparente e conservação', 'Padrão construtivo', 'Vagas',
|
| 504 |
'Coeficiente extra', 'Valor', 'fof','Valor_desc', 'Vunit','fal', 'fac', 'fat','fpe', 'ftp','frv','fsp',
|
| 505 |
'fap','fav', 'fic','fpd', 'fvg', 'fex']]
|
|
@@ -612,8 +614,8 @@ def avaliacao_imovel(planilha, num_linhas_desejadas=3, finalidade='Defina o tipo
|
|
| 612 |
item_3 = 1
|
| 613 |
|
| 614 |
# item_4 - Graus de Fundamentação ( Intervalo admissível de ajuste para o conjunto de fatores)
|
| 615 |
-
max = result.iloc[:,
|
| 616 |
-
min = result.iloc[:,
|
| 617 |
if num >= 5:
|
| 618 |
if min >= 0.8 and max <= 1.2:
|
| 619 |
item_4 = 3
|
|
@@ -890,7 +892,9 @@ def avaliacao_imovel(planilha, num_linhas_desejadas=3, finalidade='Defina o tipo
|
|
| 890 |
#-----------------#
|
| 891 |
|
| 892 |
# para gerar um gráfico de dispersão na interface
|
| 893 |
-
scatter_plot_with_percent_labels(df_grafico)
|
|
|
|
|
|
|
| 894 |
|
| 895 |
#-----------------#
|
| 896 |
|
|
@@ -932,7 +936,7 @@ interface = gr.Interface(
|
|
| 932 |
gr.components.Textbox(label="Intervalo de confiança de 80%"),
|
| 933 |
gr.components.Textbox(label="Valores Calculados"),
|
| 934 |
gr.Plot(label="Geolocalização da amostra"),
|
| 935 |
-
gr.Image(label="Gráfico
|
| 936 |
|
| 937 |
],
|
| 938 |
live=False,
|
|
|
|
| 72 |
|
| 73 |
#-----------------#
|
| 74 |
|
| 75 |
+
|
| 76 |
+
def grafico_barras(data):
|
| 77 |
# Calcular a média da coluna 'Vunit_hom'
|
| 78 |
media = data['Vunit_hom'].mean()
|
| 79 |
|
| 80 |
# Calcular o percentual de distância à média para cada ponto
|
| 81 |
+
data['Percentual_Distancia'] = round(((data['Vunit_hom'] - media) / media) * 100, 1)
|
| 82 |
|
| 83 |
# Criar o gráfico de dispersão em relação à média com rótulos
|
| 84 |
plt.figure(figsize=(8, 8)) # Define o tamanho da figura (opcional)
|
| 85 |
+
plt.bar(data['ordem'], data['Percentual_Distancia'], color = 'gray')
|
| 86 |
+
|
|
|
|
| 87 |
# Adicionar rótulos com percentual de distância à média
|
| 88 |
+
for i, Percentual_Distancia in enumerate(data['Percentual_Distancia']):
|
| 89 |
+
plt.text(data['ordem'][i], Percentual_Distancia, f'{Percentual_Distancia}%', ha='center', va='bottom', fontsize = 12)
|
| 90 |
|
| 91 |
# Configurações de gráfico
|
| 92 |
+
plt.title('Distância percentual dos dados homogeneizados à média saneada')
|
| 93 |
+
plt.xlabel('Ordem dos dados')
|
| 94 |
+
plt.ylabel('% de distância à média')
|
| 95 |
plt.legend()
|
| 96 |
|
| 97 |
# Salvar o gráfico como uma imagem (por exemplo, em formato PNG)
|
|
|
|
| 498 |
result['Vunit'] = round((result['Valor_desc']/result['Área Construída']), 2)
|
| 499 |
else:
|
| 500 |
result['Vunit'] = round((result['Valor_desc']/result['Área Terreno']), 2)
|
| 501 |
+
|
| 502 |
+
result['ordem'] = range(1, len(result)+1)
|
| 503 |
|
| 504 |
+
result = result[['ordem', 'lat','lon','Endereço','Atratividade local', 'Área Construída', 'Área Terreno', 'Testada', 'Topografia',
|
| 505 |
'Relevo','Superfície','Aproveitamento','Acessibilidade', 'Idade aparente e conservação', 'Padrão construtivo', 'Vagas',
|
| 506 |
'Coeficiente extra', 'Valor', 'fof','Valor_desc', 'Vunit','fal', 'fac', 'fat','fpe', 'ftp','frv','fsp',
|
| 507 |
'fap','fav', 'fic','fpd', 'fvg', 'fex']]
|
|
|
|
| 614 |
item_3 = 1
|
| 615 |
|
| 616 |
# item_4 - Graus de Fundamentação ( Intervalo admissível de ajuste para o conjunto de fatores)
|
| 617 |
+
max = result.iloc[:, 21:34].max().max()
|
| 618 |
+
min = result.iloc[:, 21:34].min().min()
|
| 619 |
if num >= 5:
|
| 620 |
if min >= 0.8 and max <= 1.2:
|
| 621 |
item_4 = 3
|
|
|
|
| 892 |
#-----------------#
|
| 893 |
|
| 894 |
# para gerar um gráfico de dispersão na interface
|
| 895 |
+
#scatter_plot_with_percent_labels(df_grafico)
|
| 896 |
+
grafico_barras(df_grafico)
|
| 897 |
+
|
| 898 |
|
| 899 |
#-----------------#
|
| 900 |
|
|
|
|
| 936 |
gr.components.Textbox(label="Intervalo de confiança de 80%"),
|
| 937 |
gr.components.Textbox(label="Valores Calculados"),
|
| 938 |
gr.Plot(label="Geolocalização da amostra"),
|
| 939 |
+
gr.Image(label="Gráfico"),
|
| 940 |
|
| 941 |
],
|
| 942 |
live=False,
|