matplotlib gráficos interativos (desenhando manualmente linhas em um gráfico)
Placei com êxito um conjunto de dados sequenciados por data (o eixo X é a data) usando matplotlib. No entanto, eu quero poder manualmente desenhe linhas de uma (data1, y1) para outra (data2, y2) no gráfico plotad
Não consigo encontrar nenhum exemplo que mostre como fazer isso - ou mesmo se é possíve
ara resumir, é isso que eu quero fazer:
Desenhe um conjunto de linhas no gráfico plotado Salve os dados da linha desenhados manualmente no arquivo Carregue os dados da linha desenhada manualmente do arquivo (para recriar o gráfico)Ideally, eu gostaria de armazenar 'metadados' sobre as linhas desenhadas (por exemplo, cor, largura da linha etc)Pode alguém postar um snippet de esqueleto (de preferência com links para mais informações), para mostrar como posso começar a implementar isso (os principais requisitos são a capacidade de desenhar manualmente linhas em um gráfico e depois salvar / carregar as linhas em um enredo)
Nota Por 'manualmente', quero ser capaz de desenhar as linhas clicando em um ponto e depois em outro ponto no gráfico plotado. para desenhar uma linha entre os dois pontos (ou simplesmente clicar em um ponto e arrastar e soltar o mouse em outro ponto no gráfico plotado)
[[Atualizar]
dawe, muito obrigado pelo trecho que você forneceu. Isso me permite fazer o que estou tentando fazer - no entanto, assim que a linha é desenhada na tela (após o segundo clique do mouse), a GUI falha e eu recebo esta mensagem de aviso no console:
/usr/local/lib/python2.6/dist-packages/matplotlib/backend_bases.py:2192: DeprecationWarning: Using default event loop until function specific to this GUI is implemented
warnings.warn(str,DeprecationWarning)
Você sabe o que está causando esse aviso e o encerramento abrupto do program
Além disso, é possível desenhar mais de uma linha no gráfico? (Suponho que isso envolva a gravação de algum tipo de manipulador de eventos que instancia uma variável de linha de alinhamento). No momento, tenho a chance de desenhar apenas uma linha antes que o 'aplicativo' termine abruptamente.