de-Rodrigo commited on
Commit
39eafab
1 Parent(s): 8b0263d

Improve Heatmap Legend

Browse files
Files changed (1) hide show
  1. app.py +7 -3
app.py CHANGED
@@ -2,7 +2,7 @@ import streamlit as st
2
  import pandas as pd
3
  import numpy as np
4
  from bokeh.plotting import figure
5
- from bokeh.models import ColumnDataSource, DataTable, TableColumn, CustomJS, Select, Button, HoverTool, LinearColorMapper, ColorBar, FuncTickFormatter
6
  from bokeh.layouts import column
7
  from bokeh.palettes import Reds9, Blues9, Oranges9, Purples9, Greys9, BuGn9, Greens9
8
  from sklearn.decomposition import PCA
@@ -1098,7 +1098,7 @@ def run_model(model_name):
1098
  # Si la variable seleccionada no es num茅rica, la convertimos a c贸digos num茅ricos
1099
  # y guardamos la correspondencia para la leyenda.
1100
  cat_mapping = None
1101
- if not pd.api.types.is_numeric_dtype(df_heatmap[selected_feature]):
1102
  cat = df_heatmap[selected_feature].astype('category')
1103
  cat_mapping = list(cat.cat.categories)
1104
  df_heatmap[selected_feature] = cat.cat.codes
@@ -1139,7 +1139,11 @@ def run_model(model_name):
1139
  color_bar = ColorBar(color_mapper=color_mapper, location=(0, 0))
1140
  # Si se us贸 conversi贸n a categor铆a, formateamos la barra para mostrar las etiquetas originales
1141
  if cat_mapping is not None:
1142
-
 
 
 
 
1143
  categories_json = json.dumps(cat_mapping)
1144
  color_bar.formatter = FuncTickFormatter(code=f"""
1145
  var categories = {categories_json};
 
2
  import pandas as pd
3
  import numpy as np
4
  from bokeh.plotting import figure
5
+ from bokeh.models import ColumnDataSource, DataTable, TableColumn, CustomJS, Select, Button, HoverTool, LinearColorMapper, ColorBar, FuncTickFormatter, FixedTicker
6
  from bokeh.layouts import column
7
  from bokeh.palettes import Reds9, Blues9, Oranges9, Purples9, Greys9, BuGn9, Greens9
8
  from sklearn.decomposition import PCA
 
1098
  # Si la variable seleccionada no es num茅rica, la convertimos a c贸digos num茅ricos
1099
  # y guardamos la correspondencia para la leyenda.
1100
  cat_mapping = None
1101
+ if df_heatmap[selected_feature].dtype == bool or not pd.api.types.is_numeric_dtype(df_heatmap[selected_feature]):
1102
  cat = df_heatmap[selected_feature].astype('category')
1103
  cat_mapping = list(cat.cat.categories)
1104
  df_heatmap[selected_feature] = cat.cat.codes
 
1139
  color_bar = ColorBar(color_mapper=color_mapper, location=(0, 0))
1140
  # Si se us贸 conversi贸n a categor铆a, formateamos la barra para mostrar las etiquetas originales
1141
  if cat_mapping is not None:
1142
+
1143
+ # Creamos ticks fijos solo para cada categor铆a
1144
+ ticks = list(range(len(cat_mapping)))
1145
+ color_bar.ticker = FixedTicker(ticks=ticks)
1146
+
1147
  categories_json = json.dumps(cat_mapping)
1148
  color_bar.formatter = FuncTickFormatter(code=f"""
1149
  var categories = {categories_json};