DavidSB commited on
Commit
17f783f
1 Parent(s): 48e68c8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -15
app.py CHANGED
@@ -72,26 +72,26 @@ def plotar_mapa_com_dois_dataframes(df1, df2):
72
 
73
  #-----------------#
74
 
75
- def scatter_plot_with_percent_labels(data):
 
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
- scatter = plt.scatter(range(len(data)), data['Vunit_hom'], marker='o', s=50, c='black', label='Vunit_hom')
85
- plt.axhline(y=media, color='red', linestyle='--', label='Média')
86
-
87
  # Adicionar rótulos com percentual de distância à média
88
- for i, (x, y, pct) in enumerate(zip(range(len(data)), data['Vunit_hom'], data['Percentual_Distancia'])):
89
- plt.annotate(f'{pct:.2f}%', (x, y), textcoords="offset points", xytext=(0, 10), ha='center')
90
 
91
  # Configurações de gráfico
92
- plt.title('Gráfico de Dispersão em Relação à Média de Vunit_hom com Rótulos de Percentual')
93
- plt.xlabel('Índice dos Dados')
94
- plt.ylabel('Vunit_hom')
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[:, 20:33].max().max()
616
- min = result.iloc[:, 20:33].min().min()
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 de dipersão"),
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,