Matplotlib Tutorial - Colocar Texto no Terreno
-
Eixos Matplotlib
Text
-
Eixos Matplotlib
Text
Exemplo básico -
Eixos Matplotlib
Text
Rotação -
Eixos Matplotlib
text
Explicação do ângulo de rotação
Neste tutorial vamos aprender sobre como colocar texto no enredo. Você pode adicionar texto e dar a esse texto uma localização coordenada ou também pode adicionar texto a um enredo específico e talvez desenhar uma seta que aponte diretamente para esse enredo.
Eixos Matplotlib Text
matplotlib.axes.Axes.text(x, y, s, fontdict=None, withdash=False, **kwargs)
Adicione o texto s
aos eixos no local (x, y)
em coordenadas de dados.
Parâmetros*
Nome | Tipo de dados | Descrição |
---|---|---|
x, y |
scalars |
A posição para colocar o texto |
s |
str |
O texto da anotação |
fontdict |
dic |
Um dicionário para substituir as propriedades padrão da fonte de texto |
Eixos Matplotlib Text
Exemplo básico
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 4 * np.pi, 1000)
y = 10 * np.sin(x)
fig, ax = plt.subplots(1, figsize=(6, 4.5))
ax.plot(x, y, "r")
ax.text(2.0, 9.5, "Peak Value",fontsize=14)
ax.grid(True)
plt.show()
Eixos Matplotlib Text
Rotação
Os eixos text
têm um argumento de palavra-chave - rotation
que especifica o ângulo de rotação do texto no gráfico. O ângulo de rotation
está entre 0 e 360 (grau).
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 4 * np.pi, 1000)
y = 10 * np.sin(x)
fig, ax = plt.subplots(1, figsize=(6, 4.5))
ax.plot(x, y, "r")
ax.text(1.3, 9.0, "Peak Value", fontsize=16, rotation = 270)
ax.grid(True)
plt.show()
Eixos Matplotlib text
Explicação do ângulo de rotação
O ângulo de rotação é no sentido contrário ao dos ponteiros do relógio. Fazemos um roteiro de demonstração para ilustrar a definição do ângulo de rotação.
import matplotlib.pyplot as plt
import numpy as np
def addtext(ax, props):
for x in range(8):
angle = 45 * x
ax.text(0.5+x, 0.5, '{} degree'.format(angle), props, rotation=angle)
ax.scatter(x + 0.5, 0.5, color='r')
ax.set_yticks([0, .5, 1])
ax.set_xlim(0, 8)
ax.grid(True)
# the text bounding box
bbox = {'fc': '0.8', 'pad': 0}
fig, axs = plt.subplots(1, 1, figsize=(8, 3))
addtext(axs, {'ha': 'center', 'va': 'center', 'bbox': bbox})
axs.set_xticks(np.arange(0, 8.1, 0.5), [])
axs.set_ylabel('center / center')
plt.show()
O texto é alinhado pela sua caixa de delimitação que é a caixa rectangular que rodeia o rectângulo de texto. O texto será primeiro rodado e depois alinhado. Basicamente, o texto é centralizado em (x, y)
localização, girado em torno deste ponto, e depois alinhado de acordo com a caixa de delimitação do texto girado.
Então, se você especificar alinhamento à esquerda, a parte inferior esquerda da caixa de delimitação do texto rotacionado estará na coordenada (x, y)
do texto.