domingo, 17 de janeiro de 2016

Identificar e obter coordenadas de um ponto em gráficos

Quando estamos trabalhando com gráficos, também chamados de plot, podemos estar interessados em duas coisas em específico:

  1. Identificar pontos no gráfico,
  2. Saber quais são as coordenadas de determinado ponto.

Como justificativa para (1), podemos citar, por exemplo, a análise de resíduos de uma regressão comum, em que queremos identificar as observações que são outliers (quando há). Para (2), suponha que desejamos conhecer as coordenadas (aproximadas) de um ponto na curva para a qual muda de comportamento.
Temos uma função para cada objetivo acima, que são bastante úteis, e veremos a seguir.

A função identify ()


Primeiramente, precisamos saber se a identificação do ponto se dará por número ou se temos nomes para as observações. No nosso exemplo, criamos aleatoriamente 10 pontos (coordenadas inteiras) no quadrado [0,10]x[0,10]. Queremos identificá-los por 'a', 'b', 'c' e assim por diante. Foi criado o vetor com os nomes (ou labels) dos pontos, como vemos na figura abaixo.


Obtemos as seguintes coordenadas que foram plotadas:


Para identificar os pontos no gráfico, usamos a função identify(). Sua sintaxe é:
identify( x , y , labels , n,...)
Em que:
x e y são os vetores correspondentes às coordenadas do ponto,
labels é o vetor contendo o nome dos pontos (caso contrário, o ponto será identificado como sua posição no vetor de coordenadas),
n é o número de pontos que se deseja identificar.
... são atributos opcionais.

Quando se executa essa função, devemos clicar no ponto a ser identificado. Se você clicar em uma região que não há pontos próximos, uma mensagem de aviso será exibida.
Para este exemplo, identificamos quatro pontos:

E o gráfico:


A função locator()


Para obter as coordenadas de um ponto de um gráfico, usamos a função locator() que tem como sintaxe:

locator(n,...)

Em que:
n é o número de pontos cujas coordenadas se deseja obter.
... são atributos opcionais.

Quando se executa essa função, devemos clicar no ponto do gráfico que queremos a localização.
No nosso exemplo, obtemos a localização de quatro pontos (os mesmos pontos identificados no exemplo anterior). 


Note que, como temos que clicar, não teremos as coordenadas exatas dos pontos. Mesmo assim, obtivemos excelentes aproximações dos pontos reais.

Espero que tenha ajudado.
Até a próxima.