TUTORIAL

Matplotlib Tutorial - Colocar Texto no Terreno

Este tutorial introduz o texto Matplotlib no gráfico e como colocar o texto no gráfico, e como girar o texto no mesmo.

Nesta página

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()

Texto Matplotlib

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()

Matplotlib Texto_Rotação

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()

Matplotlib Text_Rotation Angle Demonstration

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.