Eu estou usando matplotlib
com NavigationToolbar2QT
. A barra de ferramentas está mostrando a posição do cursor. Mas eu gostaria que o cursor se encaixe no ponto de dados mais próximo (quando estiver próximo o suficiente) ou simplesmente mostre a coordenada do ponto de dados mais próximo. Isso pode ser arranjado de alguma forma?
python
matplotlib
Pigmalião
fonte
fonte
Respostas:
Se você estiver trabalhando com grandes conjuntos de pontos, aconselho que você use
CKDtrees
:Eu refatorei a
kpie's
resposta aqui um pouco. Depois deckdtree
criado, você pode identificar os pontos mais próximos instantaneamente e vários tipos de informações sobre eles com um pouco de esforço:Exibição interativa da posição do cursor. Se você deseja que as coordenadas do ponto mais próximo sejam exibidas na barra de ferramentas de navegação:
Usando eventos. Se você quiser outro tipo de interatividade, poderá usar eventos:
fonte
points
cada vez que o gráfico é ampliado?ckdtree.data
pontos realistas com escala = 1. Vocêpoints
pode ser redimensionado e não há problema se precisar acessar apenas os índices deles.matplotlib
? O que eu encontrei na web foi extremamente complicado.matplotlib
biblioteca. Afinal, a biblioteca resgatou as posições dos pontos em algum lugar - afinal, está desenhando-as na trama!set_aspect
: matplotlib.org/3.1.3/api/_as_gen/…O código a seguir imprimirá as coordenadas do ponto mais próximo ao mouse quando você clicar.
fonte
Você poderia subclasse
NavigationToolbar2QT
e substituir omouse_move
manipulador. Os atributosxdata
eydata
contêm a posição atual do mouse nas coordenadas da plotagem. Você pode encaixá-lo no ponto de dados mais próximo antes de passar o evento para omouse_move
manipulador da classe base .Exemplo completo, com destaque ao ponto mais próximo da trama como um bônus:
fonte