Como criar uma capa bonita para trabalho de geografia usando Bokeh
A maioria dos alunos que trabalham com visualização geográfica acaba improvisando a capa no Word ou Canva. Isso funciona até certo ponto, mas quando o professor pede algo técnico ou quando você quer que a capa reflita realmente o conteúdo do trabalho, uma solução programada é bem mais rápida do que você imagina. O Bokeh, biblioteca Python de visualização, permite gerar capas limpas e editáveis sem depender de ferramentas gráficas pesadas.
Bokeh capa de trabalho de geografia — o passo a passo
Comece instalando o que é necessário. No terminal, rode pip install bokeh folium python-dotenv. O Bokeh gera gráficos vetoriais, o Folium ajuda com mapas interativos de fundo, e a dotenv é opcional mas recomendo para não deixar credenciais de API espalhadas no código. A estrutura básica do script fica assim:
Importe os módulos necessários, crie um output_file apontando para o nome do seu trabalho, e defina as dimensões da figura. Para uma capa A4 em 300 DPI, o tamanho em pixels fica em torno de 2480 x 3508. No Bokeh você trabalha com unidades de página, então use figure() com width=8.5 e height=11 para simular as proporções aproximadas de uma folha carta, ou ajuste conforme sua necessidade. Adicione os elementos visuais. Um título com text() posicionado no centro, coordenadas geográficas com um annotate simples, e se quiser um mapa de fundo, o Folium gera um HTML que você pode sobrepor como imagem de fundo usando ImageURL no Bokeh. Mapas estáticos do OpenStreetMap funcionam bem — basta gerar uma captura via requests para o tile server e carregar com PIL.
👉 Clique no botão abaixo para saber mais sobre o assunto!
O erro mais comum que vejo people cometendo é tentar plotar o mapa direto no canvas do Bokeh sem ajustar a projeção. Os tiles do OpenStreetMap usam Web Mercator (EPSG:3857) e se você simplesmente sobrepor coordenadas lat/lon sem transformar, tudo fica distorcido perto dos polos. A solução prática que eu uso é fazer a renderização dos tiles diretamente com o Folium, salvar como PNG, e usar esse PNG como background_image no Bokeh. Dessa forma, a distorção já está resolvida antes de chegar no gráfico final.
Dicas práticas que ninguém conta
Primeiro, a paleta de cores. Geografia lida com mapas temáticos, então cores discretas funcionam melhor do que vermelho e amarelo gritando na capa. Use uma escala viridis ou plasma do Matplotlib como base, e aplique apenas nos elementos de destaque. O restante fique cinza escuro ou branco. Segundo, tipografia. O Bokeh não tem controle fino de fontes como o LaTeX, então defina a fonte no início com the_font = "Arial" e aplique em todos os text widgets. Se precisar de algo mais elaborado, exporte o texto como SVG externo e importe como imagem. Custa mais tempo, mas o resultado visual melhora consideravelmente.
Terceiro, não esqueça os metadados. Coloque subtítulos com o nome da disciplina, ano e instituição usando labels menores, posicionados abaixo do título principal. Mantenha hierarquia visual clara — título maior, subtítulo metade do tamanho, dados secundários ainda menor. Um problema específico que enfrentei: ao gerar a capa com mapa de fundo via tiles, o servidor do OpenStreetMap começou a bloquear minha requisição após muitas tentativas seguidas. A Workaround foi usar o Nominatim com um delay de 1 segundo entre cada tile request, ou então baixar um dataset estático de tiles para a região de interesse e servir localmente. Foi um incômodo, mas depois que deixei o cache configurado, nunca mais tive problema.
Limitações e quando não usar Bokeh
O Bokeh não é a melhor ferramenta para capas puramente tipográficas. Se o seu trabalho de geografia é mais conceitual, sem mapas complexos, talvez o LaTeX com packages como geometry e microtype seja mais adequado. O Bokeh brilha quando há elementos cartográficos ou dados espaciais para integrar na composição visual. Também é importante saber que o output final precisa ser convertido para PDF se for entregar impresso — use o comando bokeh export ou simplesmente imprima o HTML gerado pelo navegador como PDF. Se você precisa de algo extremamente customizado, com alinhamento pixel-perfect e controles tipográficos avançados, considere combinar Bokeh com o Inkscape via script Python. O fluxo é: gerar os elementos vetoriais no Bokeh, exportar como SVG, e finalizar no Inkscape. Essa combinação reduz o tempo de montagem em cerca de 40% comparado a fazer tudo manualmente em editores gráficos.