En este tutorial aprenderás a instalar Bokeh (y sus dependencias) y los elementos básicos para crear visualizaciones con Bokeh. También verás cómo generar gráficos sencillos y personalizarlos. Esto sentará las bases para aprender funciones más avanzadas en las siguientes secciones.
¿Qué es Bokeh?
Bokeh es un paquete interactivo de visualización de datos para crear visualizaciones dinámicas con Python. Bokeh es de código abierto y puedes usarlo para crear gráficos que cuenten una historia interesante.
¿Qué diferencia a Bokeh de otras herramientas?
En el mundo de las visualizaciones, hay muchas librerías de Python para crear paneles e informes visuales, entre ellas:
- Bokeh
- Matplotlib
- Streamlit
- dash
- Seaborn
- Plotly
- Geoplotlib
- Gleam
- ggplot
- Missingo
Bokeh es especialmente útil para:
- Crear visualizaciones interactivas para navegadores modernos
- Generar documentos independientes o aplicaciones con servidor
- Diseñar gráficos expresivos y dinámicos
- Construir paneles para datos masivos, dinámicos o en streaming
Este tutorial de Bokeh es para ti...
Si eres científico/a de datos, analista de datos o ingeniero/a de machine learning. Este tutorial requiere conocimientos básicos de Python y saber cómo instalar e importar paquetes. Aprenderás a crear visualizaciones interactivas y a publicarlas en la web usando la librería Bokeh. Bokeh te ayuda a crear gráficos interactivos, paneles y aplicaciones de datos.
Cómo instalar Bokeh
Instalar con Anaconda
Si Anaconda es tu gestor de paquetes de Python, puedes instalar Bokeh desde Anaconda Prompt, Windows Command Prompt o la terminal de Bash, así:
conda install bokeh
conda install jinja2
conda install six
conda install requests
conda install tornado
conda install pyYaml
Instalar con pip
También puedes instalarlo con el gestor de paquetes pip, así:
pip install bokeh
pip install jinja2
pip install six
pip install requests
pip install tornado
pip install pyYaml
Instalar desde Jupyter Notebook
!pip install bokeh
!pip install Jinja2
!pip install Six
!pip install Requests
!pip install Tornado
!pip install PyYaml
Verifica la instalación
from bokeh.io import output_notebook, show
output_notebook()

Resolución de problemas
Si tienes problemas al instalar Bokeh, puedes consultar Discourse para obtener ayuda. También puedes revisar Github para ver incidencias y soluciones de Bokeh.
Bienvenido/a a los glyphs
¿Qué son los glyphs?
Los glyphs son los bloques fundamentales de Bokeh para crear gráficos. Todo gráfico que construyes en Bokeh utiliza algún glyph. Por ejemplo, para crear un diagrama de dispersión, puedes usar un círculo como marcador para representar información. Una línea representa información en un gráfico de líneas.
Estas formas geométricas (líneas o círculos) son lo que Bokeh llama glyphs. Transmiten información visual sobre los datos. Este tutorial te ayudará a entenderlos mostrando cómo usarlos para crear distintos tipos de gráficos. En resumen, vamos a trazar los siguientes tipos de gráficos usando glyphs:
- Gráficos de líneas: muestran el movimiento de puntos de datos a lo largo de los ejes x e y como una línea. Son adecuados para series temporales.
- Gráficos de barras: representan el recuento de cada categoría como una columna. Son adecuados para categorizar datos.
- Gráficos de parches (patch): muestran una región de puntos con un color concreto. Son útiles para distinguir grupos dentro del mismo conjunto de datos.
- Gráficos de dispersión: representan la relación entre dos variables y la fuerza de la correlación entre ellas.
Cómo usar glyphs para graficar
Los pasos generales para crear un gráfico en Bokeh son:
- Crear un gráfico con la función figure() para indicar a Bokeh que genere un lienzo.
- Definir el título y las etiquetas de los ejes x e y.
- Añadir el glyph line() a la figura para crear un gráfico de líneas y
- usar cross() para marcar intersecciones entre los puntos x e y.
Crear gráficos de líneas
Este código muestra cómo crear un gráfico de líneas simple en Bokeh.
#Import the required packages
from bokeh.io import output_notebook, output_file, show
from bokeh.plotting import figure
#Create two data arrays
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y = [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
# Create plot
plot = figure(width=400, height=400, title="Simple line plot", x_axis_label="x-axis", y_axis_label = 'y-axis')
plot.line(x,y, line_width=2, color='green')
#Show plot
output_file(“line_plot1.html”)
show(plot)
Este ejemplo muestra cómo crear un glyph de línea único usando secuencias unidimensionales de puntos x e y con el glyph line(). En la función figure() puedes especificar el ancho y el alto del gráfico, el título y las etiquetas de los ejes. En el glyph line(), puedes indicar el grosor con el argumento line_width y el color con el argumento color.

Crear gráficos de barras
#Import the
from bokeh.plotting import figure, show
animals = ['lion', 'leopard', 'elephant', 'rhino', 'buffalo']
weight_tonnes = [190, 90, 3000, 2300, 590]
p = figure(x_range=animals, height=350, title="Big Five weight", x_axis_label = "Animal", y_axis_label = "Weight",
toolbar_location=None, tools="")
p.vbar(x=animals, top=weight_tonnes, width=0.9)
p.xgrid.grid_line_color = None
p.y_range.start = 0
show(p)

Crear gráficos de parches (patch)
Un gráfico de parches sombrea regiones con color para mostrar que un grupo o zona comparte características similares. Puedes crear un gráfico de parches sencillo así:
# Import required packages
from bokeh.io import output_file, show
from bokeh.plotting import figure
# Create the regions to chart
x_region = [[1,1,2], [2,3,3], [2,3,5,4]]
y_region = [[2,5,6], [3,6,7], [2,4,7,8]]
# Create plot
plot = figure()
plot.patches(x_region, y_region, fill_color = ['blue', 'yellow', 'green'], line_color = 'black')
show(plot)

Hay tres regiones diferenciadas: la primera es [1,1,2] mapeada a [2,5,6] en el eje y. La segunda es la región [2,2,3] en el eje x mapeada a [3,6,7] en el eje y, y la tercera región [2,3,5,4] en el eje x mapeada a [2,4,7,8] en el eje y. El glyph patches usa distintos colores para construir los parches de cada región. El argumento _linecolor especifica el color del borde de cada parche.
Crear gráficos de dispersión
En ciencia de datos se usan a menudo los gráficos de dispersión para determinar la relación entre dos variables. Puedes crear uno sencillo en Bokeh así:
# Import required packages
from bokeh.io import output_file, show
from bokeh.plotting import figure
# Create x and y data points
x = [1,2,3,4,5]
y = [5,7,2,2,4]
# Create plot
plot = figure(title = "Scatter plot", x_axis_label = "Label name of x axis", y_axis_label ="Label name of y axis")
plot.circle(x,y, size = 30, alpha = 0.5)
# Add labels
# Output the plot
show(plot)

El código usa marcadores de tipo círculo para crear los puntos de intersección de las listas x e y en el gráfico de dispersión. En lugar de círculos, puedes usar otros marcadores como:
- cross()
- x()
- diamond()
- diamond_cross()
- circle_x()
- circle_cross()
- triangle()
- inverted_triangle()
- square_x()
- square_cross()
- asterisk()
El argumento size = 30 especifica el tamaño de cada círculo. La figura resume todos los marcadores disponibles en Bokeh.

El argumento alpha define la transparencia de los círculos. Toma valores entre 0 y 1, donde 0 es completamente transparente y 1 es opaco.
Conclusión
Este tutorial presenta Bokeh como una herramienta interactiva y de alto nivel para visualización. Sienta las bases de lo que puedes esperar al trabajar con Bokeh. Has visto cómo crear gráficos de líneas, de barras, de parches y de dispersión en Bokeh usando el concepto de glyphs. Consulta la siguiente documentación de Bokeh para más detalles sobre los distintos tipos de gráficos que puedes crear en Bokeh.