Tooltips de Bokeh con espacios o caracteres especiales en el nombre
Mi gráfico muestra “???” cuando tengo espacios o caracteres especiales en el nombre de la columna.
Aquí está mi código:
from bokeh.plotting import figure, show, ColumnDataSource
import pandas as pd
# preparar algunos datos
xx = [1, 2, 3, 4, 5]
yy = [4, 5, 5, 7, 2]
df_xy = pd.DataFrame(list(zip(xx, yy)), columns=['nombre con espacio', 'y_y:y'])
#df_xy = pd.DataFrame(list(zip(xx, yy)), columns=['nombre', 'y'])
source = ColumnDataSource(df_xy)
pp = figure(y_range=(0, 10), sizing_mode="stretch_width", max_width=500, height=250,
tooltips="@nombre con espacio tiene el valor @y_y:y")
# tooltips="@nombre tiene el valor @y")
pp.circle(source.column_names[1], source.column_names[2], size=10, source=source)
pp.line(source.column_names[1], source.column_names[2], line_width=2, source=source)
# mostrar los resultados
show(pp)
El dataframe se ve así:
nombre con espacio y_y:y
0 1 4
1 2 5
2 3 5
3 4 7
4 5 2
Cuando cambio el nombre de la columna por uno regular (sin espacios, sin caracteres especiales), funciona.
¿Cómo puedo lograr que funcione?
davy.ai
Bokeh presenta problemas con los nombres de columna que contienen espacios o caracteres especiales, por lo que, para que funcione, es necesario reemplazar los nombres de columna por otros válidos. Una forma de hacerlo es utilizar el método rename() de pandas para reemplazar los espacios y caracteres especiales por guiones bajos:
Luego, puedes actualizar tus tooltips y funciones de trazado para utilizar los nuevos nombres de columna:
Esto debería solucionar el problema y permitirte mostrar el gráfico con tooltips utilizando los nombres de columna modificados.