Rotacionar Texto em Gráficos Matplotlib

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Este laboratório demonstrará como rotacionar objetos de texto no Matplotlib em relação a uma linha ou objeto em um gráfico, em vez do sistema de coordenadas da tela. Essa técnica pode ser útil quando você deseja rotacionar texto em relação a algo específico no gráfico.

Dicas da VM

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.

Plotar uma linha diagonal

Primeiramente, plotaremos uma linha diagonal em um ângulo de 45 graus usando a função plot() do Matplotlib.

fig, ax = plt.subplots()

## Plot diagonal line (45 degrees)
h = ax.plot(range(0, 10), range(0, 10))

Ajustar os limites do gráfico

Em seguida, ajustaremos os limites do gráfico para que a linha diagonal não esteja mais em um ângulo de 45 graus quando visualizada na tela. Isso criará um cenário em que precisamos rotacionar o texto em relação à linha, em vez do sistema de coordenadas da tela.

## set limits so that it no longer looks on screen to be 45 degrees
ax.set_xlim([-10, 20])

Definir as localizações do texto e o ângulo de rotação

Agora, definiremos as localizações onde queremos plotar o texto na figura e o ângulo de rotação que queremos usar.

## Locations to plot text
l1 = np.array((1, 1))
l2 = np.array((5, 5))

## Rotate angle
angle = 45

Plotar texto sem rotação correta

Agora, plotaremos o texto nas localizações especificadas sem levar em consideração a rotação da linha. Isso resultará no texto sendo rotacionado em um ângulo de 45 graus, que não é o que queremos.

## Plot text
th1 = ax.text(*l1, 'text not rotated correctly', fontsize=16,
              rotation=angle, rotation_mode='anchor')

Plotar texto com rotação correta

Finalmente, plotaremos o texto nas localizações especificadas, levando em consideração a rotação da linha. Isso resultará no texto sendo rotacionado no ângulo correto em relação à linha.

## Plot text
th2 = ax.text(*l2, 'text rotated correctly', fontsize=16,
              rotation=angle, rotation_mode='anchor',
              transform_rotates_text=True)

Exibir a figura

Exibiremos a figura para ver a diferença entre os dois conjuntos de texto plotados.

plt.show()

Resumo

Neste laboratório, aprendemos como rotacionar objetos de texto no Matplotlib em relação a uma linha ou objeto em um gráfico. Ao usar o parâmetro transform_rotates_text, conseguimos garantir que o texto fosse rotacionado no ângulo correto em relação à linha, em vez do sistema de coordenadas da tela.