Mostrando postagens com marcador grafico. Mostrar todas as postagens
Mostrando postagens com marcador grafico. Mostrar todas as postagens

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.


quinta-feira, 17 de outubro de 2013

A função Plot () - Parte I

A função plot desenha um ponto, ou um conjunto de pontos, em um eixo coordenado. Em outras palavras, desenha gráficos.
A estrutura básica da função é:
plot(x, y, ...)

Em que:
 x e y são vetores de pontos correspondentes ao eixo x e ao eixo y, respectivamente.
... são atributos opcionais.

Vamos à prática:
Queremos plotar o ponto (2,3) no plano cartesiano. Para isso, basta digitarmos plot(2,3). Veja o resultado:

Agora queremos plotar vários pontos no plano cartesiano. Lembre-se que x é o vetor de coordenadas do eixo x e y, o do eixo y. Desse modo:






x<-c(1,2,3,4,5,6,7,8,9,10)
y<-c(1,5,-2,3,9,9,9,-4,2,0)
plot(x,y)








Agora, vamos explorar um pouco os atributos da função plot:

main: título do gráfico;
sub: subtítulo do gráfico;
xlab: nome para o eixo x;
ylab: nome para o eixo y.

Note que os valores para cada atributo acima é uma cadeia de caracteres. Para o exemplo anterior, suponha que os pontos que plotamos sejam as notas dos alunos (y) para cada aluno (x), somente para a disciplina de biologia. Então, usando os atributos acima, vemos o seguinte resultado:

plot(x,y, main='Notas dos alunos',  sub='Disciplina: biologia', xlab='Aluno', ylab='Nota')


Note que o subtítulo fica exatamente embaixo do gráfico.

Até agora plotamos apenas pontos. O atributo type nos permite escolher o tipo de plotagem, por exemplo, pontos ou linha. Seus valores são:

p: pontos
l: linhas
b: pontos e linhas
c: apenas as linhas da plotagem 'b'
o: pontos e linhas sobrepostos
h: linhas de histograma (verticais)
s: para escada
n: sem plotagem

Note que, se quisermos plotar apenas os eixos, sem plotar nenhum ponto ou linha, usaremos type='n'. Pode não fazer sentido agora, mas em outras postagens mostrarei o quão útil é esse valor do atributo type.

Ainda com os pontos do exemplo anterior, façamos:

plot(x,y, main='Notas dos alunos',  sub='Disciplina: biologia', xlab='Aluno', ylab='Nota', type='l')



plot(x,y, main='Notas dos alunos',  sub='Disciplina: biologia', xlab='Aluno', ylab='Nota', type='o')


plot(x,y, main='Notas dos alunos',  sub='Disciplina: biologia', xlab='Aluno', ylab='Nota', type='h')


Note que o tipo 'h' retorna a linha que liga o ponto até o zero do eixo y.  Os demais atributos deixo a vocês experimentarem.

Na próxima postagem, falarei um pouco sobre funções. Vamos começar a programar em alto nível agora!