3
respostas

Texto Colorido - código não esta funcionando

Utilizei o código:

// Código omitido

## Trabalhando com o texto colorido para legenda e anotações

# Legenda das barras
ax.legend().remove()    # remover legenda padrão da visualização
texto_colorido(0, 4.4, '$\\bf{Serviços}$ || | || $\\bf{Indústria}$ || | || $\\bf{ADESPSS}$ || | || $\\bf{Agropecuária}$',
               cores = [[cores[0], CINZA3, cores[1], CINZA3, cores[2], CINZA3, cores[3]]], ax=ax, fontsize=12)

mas aparece que texto_colorido não foi definido

o código não esta disponível no repertório:
Você pode encontrar a função no seguinte repositório: https://github.com/storytelling-with-data-brasil/visualizacoes

o que posso fazer?

3 respostas

Olá, Veronice! Como vai?

Esse erro ocorre quando estamos tentando usar uma função que ainda não foi definida.

Para corrigir, devemos antes definir/criar a função texto_colorido(). No nosso caso, não precisamos criá-la do zero, podemos encontrá-la no notebook disponibilizado no início da aula:

A função está na seção 3.3, como você pode observar na imagem:

Captura de tela de um notebook de codificação exibindo uma função Python para anotação de texto colorido usando Matplotlib, com explicação em português.

Espero ter ajudado e fico à disposição se precisar.

Abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado

Olá Daniel,
Estou bem e vc?

Infelizmente eu copiei o código, mas ainda assim não funcionou

tentei copiar os codigos do link que vc me passou, mas não funcionou tambem

Bom dia, Veronice! Como vai?

Se certifique de executar essa célula que define a função:

# Função para escrita de texto utilizando diferentes cores. Não existe uma
# função nativa para isso. (Adaptado de https://github.com/empathy87/storytelling-with-data)
from matplotlib import transforms

def texto_colorido(x, y, texto, cores, esp=20, ax=None, **kw):
    cores = list(reversed(cores))
    t = ax.transData
    canvas = ax.figure.canvas

    for i, linha in enumerate(reversed(texto.split('\n'))):
        frases = linha.split('||')
        for s, cor in zip(frases, cores[i]):
            texto = ax.text(x, y, s, color=cor, transform=t, **kw)
            texto.draw(canvas.get_renderer())
            ex = texto.get_window_extent()
            t = transforms.offset_copy(texto._transform, x=ex.width,
                                       units='dots')

        t = transforms.offset_copy(ax.transData, x=0, y=(i + 1) * esp, units='dots')

Somente depois de executá-la, você poderá usá-la nos outros blocos de código do notebook.

Após fazer isso, se continuar dando erro, peço que me envie um print da tela exibindo a mensagem erro.

Espero ter ajudado e fico à disposição se precisar.

Abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado