Curso matplotlib - Elementos auxiliares (Texto)

3 minute read


Para adicionar um texto no gráfico do matplotlib podemos utilizar o plt.text(). Este método recebe três parâmetros, que são as coordenadas de x (x) e y (y), e o texto que será desenhado no texto (s).

Exemplo:

plt.figure(figsize=(8,6))
plt.scatter(x,y)
plt.text(2.5,2,"Meu texto")
plt.show()

Figura 1 - Gráfico de dispersão com texto inserido

gráfico de dispersão genérico desenhado com o **matplotlib**, com texto inserido


Formatação

Podemos editar de forma simples o texto inserido. Para alterar o estilo do texto, passamos o parâmetro style (ou fontstyle) como:

  • 'italic' (para deixar o texto em itálico);
plt.figure(figsize=(8,6))
plt.scatter(x,y)
plt.text(2.5,2,"Meu texto", style='italic')
plt.show()

Figura 2 - Gráfico de dispersão com texto inserido em itálico

gráfico de dispersão genérico desenhado com o matplotlib, com texto inserido em itálico


  • 'oblique' (para deixar o texto obliquo);
plt.figure(figsize=(8,6))
plt.scatter(x,y)
plt.text(2.5,2,"Meu texto", fontstyle='oblique')
plt.show()

Figura 3 - Gráfico de dispersão com texto inserido obliquo

gráfico de dispersão genérico desenhado com o matplotlib, com texto inserido obliquo


  • 'normal' (para deixar o texto normal, que é o padrão);

Negrito

Para deixar o texto em negrito, utilizamos o parâmetro fontweight (ou weight) com str de referência ('ultralight', 'light', 'normal', 'regular', 'book', 'medium', 'roman', 'semibold', 'demibold', 'demi', 'bold', 'heavy', 'extra bold', 'black').

Visualmente, as opções são renderizadas desta forma:

plt.figure(figsize=(8,6))
plt.scatter(x,y)
plt.text(1.0,3.75,"ultralight", fontweight='ultralight')
plt.text(1.0,3.5,"light", fontweight='light')
plt.text(1.0,3.25,"normal", fontweight='normal')
plt.text(1.0,3.0,"regular", fontweight='regular')
plt.text(1.0,2.75,"book", fontweight='book')
plt.text(1.0,2.5,"medium", fontweight='medium')
plt.text(1.0,2.25,"roman", fontweight='roman')
plt.text(1.0,2.0,"semibold", fontweight='semibold')
plt.text(1.0,1.75,"demibold", fontweight='demibold')
plt.text(1.0,1.5,"demi", fontweight='demi')
plt.text(1.0,1.25,"bold", fontweight='bold')
plt.text(2.0,3.25,"heavy", fontweight='heavy')
plt.text(2.0,3.0,"extra bold", fontweight='extra bold')
plt.text(2.0,2.75,"black", fontweight='black')
plt.show()

Figura 4 - Gráfico de dispersão com texto formatado com diferentes pesos

gráfico de dispersão genérico desenhado com o matplotlib, com texto formatado com diferentes pesos


Tamanho da fonte

Para alterar o tamanho da fonte, passamos um número (int ou float) ou uma str de referência ('xx-small’, 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large') através do parâmetro fontsize ou size:

Visualmente, as opções são renderizadas desta forma:

plt.figure(figsize=(8,6))
plt.scatter(x,y)
plt.text(1.0,3.75,"xx-small", fontsize='xx-small')
plt.text(1.0,3.5,"x-small", fontsize='x-small')
plt.text(1.0,3.25,"small", fontsize='small')
plt.text(1.0,3.0,"medium", fontsize='medium')
plt.text(1.0,2.75,"large", fontsize='large')
plt.text(1.0,2.5,"x-large", fontsize='x-large')
plt.text(1.0,2.25,"xx-large", fontsize='xx-large')
plt.show()

Figura 5 - Gráfico de dispersão com texto formatado com diferentes tamanhos de fontes

gráfico de dispersão genérico desenhado com o matplotlib, com texto formatado com diferentes tamanho de fonte


Família da fonte

Para alterar a fonte utilizada para desenhar o texto, basta passar o nome da fonte desejada através do parâmetro fontfamily (ou family):

Por exemplo, para alterar o tipo de família para Arial:

plt.figure(figsize=(8,6))
plt.scatter(x,y)
plt.text(2.5,2,"Meu texto", fontsize=16, fontfamily='Arial')
plt.show()

Figura 6 - Gráfico de dispersão com texto formatado com a fonte Arial.

gráfico de dispersão genérico desenhado com o matplotlib, com texto na fonte Arial


As fontes disponíveis são as mesmas vistas anteriormente.

Rotação do texto

Podemos rotacionar o texto utilizando o parâmetro rotation, passando um número, que representa o ângulo de rotação, ou uma das opções:

  • 'vertical' (para alinhar verticalmente ao eixo x);

  • 'horizontal' (para alinhar horizontalmente ao eixo x).

Exemplo:

plt.figure(figsize=(8,6))
plt.scatter(x,y)
plt.text(2.75,2.2,"Quarenta e cinco", size='xx-large', rotation=45)
plt.text(2.5,2.2,"vertical", size='xx-large', rotation='vertical')
plt.text(2.5,2,"horizontal", size='xx-large', rotation='horizontal')
plt.show()

Figura 7 - Gráfico de dispersão com texto rotacionado

gráfico de dispersão genérico desenhado com o matplotlib, com texto rotacionado


Cor do texto

Para alterar a cor do texto, basta passar o parâmetro color (ou c) com o nome da cor desejada (str). As cores disponíveis são as mesmas vistas anteriormente.

Por exemplo, para deixar o texto na cor verde:

plt.figure(figsize=(8,6))
plt.scatter(x,y)
plt.text(2.5,2,"Meu texto", size='xx-large', c='g')
plt.show()

Figura 8 - Gráfico de dispersão com texto na cor verde

gráfico de dispersão genérico desenhado com o matplotlib, com texto na cor verde


Cor de fundo

Para alterar a cor de fundo do elemento de texto, basta passar o nome da cor (str) para o parâmetro backgroundcolor. As cores disponíveis são as mesmas vistas anteriormente.

Por exemplo, para deixar a cor de fundo preta:

plt.figure(figsize=(8,6))
plt.scatter(x,y)
plt.text(2.5,2,"Meu texto", size='xx-large', c='w', backgroundcolor='k')
plt.show()

Figura 9 - Gráfico de dispersão com a cor de fundo do texto na cor preta.

gráfico de dispersão genérico desenhado com o matplotlib, com a cor de fundo do texto na cor preta.


Bordas

Para adicionar bordas ao elemento de texto, precisamos passar o parâmetro bbox com alguns parâmetros (através de um dict), pois este parâmetro vai criar uma caixa por cima do texto.

  • Para deixar esta caixa com a cor de preenchimento vazia, passamos o facecolor='none';

  • Para deixar esta caixa com a borda preta (ou a cor preferida), passamos o edgecolor='k';

Por exemplo:

plt.figure(figsize=(8,6))
plt.scatter(x,y)
plt.text(2.5,2,"Meu texto", size='xx-large', bbox={'facecolor': 'none', 'edgecolor': 'k'})
plt.show()

Figura 10 - Gráfico de dispersão com texto com bordas.

gráfico de dispersão genérico desenhado com o matplotlib, com texto com bordas


Podemos deixar esta caixa com cantos arredondados e espaçamento, passando para o parâmetro boxstyle o round para deixar os cantos arredondados, e o pad para adicionar espaçamento:

Exemplo:

plt.figure(figsize=(8,6))
plt.scatter(x,y)
plt.text(2.5,2,"Meu texto", size='xx-large', bbox={'facecolor': 'none', 'edgecolor': 'k', 'boxstyle': 'round, pad=1'})
plt.show()

Figura 11 - Gráfico de dispersão com texto com bordas arredondadas.

gráfico de dispersão genérico desenhado com o matplotlib, com texto com bordas arredondadas


Você encontra mais detalhes e muita fonte de inspiração na documentação.


Qual é a função do parâmetro rotation em plt.text()?

Rotacionar o texto

Aumentar o tamanho da fonte do texto

Alterar a fonte do texto

O plt.text() não tem nenhum parâmetro rotation.


Anterior Próximo

Updated: