Neste tutorial, você vai aprender como instalar o Bokeh (e suas dependências) e os blocos de construção básicos para criar visualizações com Bokeh. Também vai ver como criar gráficos simples e personalizá-los. Isso vai preparar o terreno para recursos mais avançados nas próximas seções.
O que é Bokeh?
Bokeh é um pacote interativo de visualização de dados para criar visualizações dinâmicas com Python. O Bokeh é open source e você pode usá-lo para criar gráficos que contem uma história interessante.
O que diferencia o Bokeh de outras ferramentas?
No mundo das visualizações, existem muitas bibliotecas Python para criar dashboards e gráficos, incluindo:
- Bokeh
- Matplotlib
- Streamlit
- dash
- Seaborn
- Plotly
- Geoplotlib
- Gleam
- ggplot
- Missingo
O Bokeh é ótimo para:
- Construir visualizações interativas para navegadores modernos
- Criar documentos independentes ou aplicações com servidor
- Gerar gráficos expressivos e dinâmicos
- Montar dashboards para dados grandes, dinâmicos ou em streaming
Este tutorial de Bokeh é para você...
Se você é cientista de dados, analista de dados ou engenheiro de machine learning. Este tutorial pressupõe que você tenha noções básicas de Python e saiba instalar e importar pacotes. Você vai aprender a criar visualizações interativas e publicá-las na web usando a biblioteca Bokeh. O Bokeh ajuda a criar gráficos interativos, dashboards e aplicações de dados.
Como instalar o Bokeh
Instalar com Anaconda
Se o Anaconda é o seu gerenciador de pacotes Python, você pode instalar o Bokeh pelo Anaconda Prompt, Prompt de Comando do Windows ou terminal Bash, assim:
conda install bokeh
conda install jinja2
conda install six
conda install requests
conda install tornado
conda install pyYaml
Instalar com pip
Você também pode instalar usando o gerenciador de pacotes pip, assim:
pip install bokeh
pip install jinja2
pip install six
pip install requests
pip install tornado
pip install pyYaml
Instalar dentro do Jupyter Notebook
!pip install bokeh
!pip install Jinja2
!pip install Six
!pip install Requests
!pip install Tornado
!pip install PyYaml
Verificar a instalação
from bokeh.io import output_notebook, show
output_notebook()

Resolução de problemas
Se você estiver com dificuldades para instalar o Bokeh, confira o Discourse para obter ajuda. Você também pode ver as issues no Github para solucionar problemas do Bokeh.
Bem-vindo aos glyphs
Afinal, o que são glyphs?
Glyphs são os blocos fundamentais do Bokeh que formam os gráficos. Todo gráfico que você cria no Bokeh usa o mecanismo de glyphs. Por exemplo, ao criar um gráfico de dispersão, você pode usar um círculo como marcador para representar informações. Uma linha representa as informações em um gráfico de linhas.
Essas formas geométricas (linhas ou círculos) são o que chamamos de glyphs no Bokeh. Elas transmitem informação visual sobre os dados. Este tutorial vai ajudar você a entender os glyphs mostrando como usá-los para criar vários tipos de gráficos. Em resumo, vamos traçar os seguintes gráficos usando glyphs:
- Gráficos de linha: mostram o movimento dos pontos de dados ao longo dos eixos x e y como uma linha. São adequados para séries temporais.
- Gráficos de barras: representam a contagem de cada categoria como uma coluna. São adequados para categorizar dados.
- Gráficos de regiões (patch): destacam uma área de pontos com uma cor específica. São úteis para distinguir grupos dentro do mesmo conjunto de dados.
- Gráficos de dispersão: mostram a relação entre duas variáveis e a força da correlação entre elas.
Como usar glyphs para plotar
Os passos gerais para criar um gráfico no Bokeh são:
- Criar um plot usando a função figure() para instruir o Bokeh a gerar o diagrama.
- Definir título, rótulos dos eixos x e y.
- Adicionar o glyph line() à figura para criar um gráfico de linhas e
- o glyph cross() para marcar interseções entre os pontos x e y.
Criando gráficos de linha
O código abaixo mostra como criar um gráfico de linha simples no 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 exemplo mostra como criar um glyph de linha simples usando uma sequência unidimensional de pontos x e y com o glyph line(). Você pode especificar a largura e a altura do gráfico, o título e os rótulos dos eixos na função figure(). No glyph line(), é possível definir a espessura com o parâmetro line_width e a cor com o parâmetro color.

Criando 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)

Criando gráficos de regiões (patch)
Um gráfico de regiões colore áreas para mostrar que um grupo ou região tem características semelhantes. Você pode criar um gráfico de regiões simples assim:
# 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)

Existem três regiões distintas: a primeira é [1,1,2] mapeada para [2,5,6] no eixo y. A segunda é a região de [2,2,3] no eixo x mapeada para [3,6,7] no eixo y, e a terceira região [2,3,5,4] no eixo x mapeada para [2,4,7,8] no eixo y. O glyph patches usa cores diferentes para construir os polígonos de cada região. O argumento line_color especifica a cor da borda de cada patch.
Criando gráficos de dispersão
Cientistas de dados costumam usar gráficos de dispersão para verificar a relação entre duas variáveis. Você pode criar um scatter plot simples no Bokeh assim:
# 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)

O código usa marcadores de círculo para criar os pontos de interseção das listas x e y no gráfico de dispersão. Em vez de círculos, você pode usar outros marcadores, como:
- cross()
- x()
- diamond()
- diamond_cross()
- circle_x()
- circle_cross()
- triangle()
- inverted_triangle()
- square_x()
- square_cross()
- asterisk()
O parâmetro size = 30 define o tamanho de cada círculo. A figura a seguir resume todos os marcadores disponíveis no Bokeh.

O argumento alpha define a transparência dos círculos. Ele aceita valores entre 0 e 1, sendo 0 totalmente transparente e 1 opaco.
Conclusão
Este tutorial apresenta o Bokeh como uma ferramenta interativa e de alto nível para visualização. Ele cria a base do que você pode esperar ao usar o Bokeh. Você viu como criar gráficos de linha, de barras, de regiões (patch) e de dispersão no Bokeh usando o conceito de glyphs. Confira a documentação do Bokeh para mais detalhes sobre os diversos tipos de gráficos que você pode criar.