As visualizações do Matplotlib geralmente encontram o problema de anotações sobrepostas, levando a gráficos desordenados e difíceis de interpretar. Este artigo fornece uma solução abrangente para enfrentar esse desafio.
Anotações sobrepostas surgem quando várias anotações compartilham o mesmo espaço de tela, criando confusão visual. No código fornecido, o texto da anotação para pontos de dados tende a se sobrepor, especialmente em regiões mais densas do gráfico.
Para evitar anotações sobrepostas, a biblioteca AdjustText, escrita por Phlya, oferece uma solução simples e eficaz. Esta biblioteca ajusta automaticamente a posição das anotações para minimizar sobreposições e, ao mesmo tempo, manter a legibilidade.
O trecho de código a seguir demonstra como usar AdjustText para otimizar o posicionamento da anotação no exemplo fornecido:
import matplotlib.pyplot as plt
from adjustText import adjust_text
# ... (code to generate the data and plot remain the same as before) ...
plt.xlabel("Proportional Euclidean Distance")
plt.ylabel("Percentage Timewindows Attended")
plt.title("Test plot")
texts = [x for (x,y,z) in together]
eucs = [y for (x,y,z) in together]
covers = [z for (x,y,z) in together]
p1 = plt.plot(eucs,covers,color="black", alpha=0.5)
texts = []
for x, y, s in zip(eucs, covers, text):
texts.append(plt.text(x, y, s))
adjust_text(texts, only_move={'points':'y', 'texts':'y'}, arrowprops=dict(arrowstyle="->", color='r', lw=0.5))
plt.show()
adjustText oferece várias opções de personalização para ajustar o posicionamento das anotações. Por exemplo, ele permite controlar quais elementos são móveis (parâmetro only_move), o alinhamento das anotações e a força de repulsão entre objetos de texto.
Ao experimentar esses parâmetros, você pode obter o posicionamento de texto ideal que maximiza a clareza e o apelo visual em seus gráficos Matplotlib sem a preocupação de anotações sobrepostas.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3