Curso matplotlib - Elementos auxiliares (Texto)
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
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
'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
'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
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
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.
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 eixox
); -
'horizontal'
(para alinhar horizontalmente ao eixox
).
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
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
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.
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.
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.
Você encontra mais detalhes e muita fonte de inspiração na documentação.