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, 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.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook