Como posso produzir um gráfico mostrando os ângulos direcionais dos meus pontos? [fechadas]


8

Quero poder comparar os ângulos dos vizinhos em um rebanho de hipopótamos. Eu tenho dados para as coordenadas xey e os ângulos que eles estão enfrentando (usando imageJ , os ângulos estão entre -180 e 180, com 0 sendo uma linha reta horizontal no meio da imagem). Eu plotei a função para ver se meus hipopótamos 'gostam' de se orientar para indivíduos que estão por perto, mas eu adoraria poder calcular uma representação visual de sua orientação no rebanho usando .g(r)R

Qualquer ajuda seria muito apreciada, eu Rainda não sou realmente alfabetizado!


1
Dê uma olhada na embalagem circular. Possui várias plotagens que podem ajudá-lo e também algumas funções interessantes.
Peter Flom

1
Eu estaria interessado em aprender mais sobre o que " " representa e como é calculado. g(r)
whuber

1
Esta questão parece estar fora de tópico, porque trata-se de codificar em R e não em estatísticas.
John

Edite sua pergunta para enfatizar mais claramente os aspectos estatísticos / de visualização de dados da sua pergunta sobre os aspectos 'que linhas de código R devo digitar'. Você também pode esclarecer o que é por favor? g
Glen_b -Reinstala Monica 14/11

A questão não é tão clara "Como posso produzir um gráfico mostrando os ângulos direcionais dos meus pontos?" mas é fora de tópico, pois se trata de 'produção'. Se apenas mudarmos o título para "Como devo traçar os ângulos direcionais dos meus pontos?" essa pergunta pode ser liberada da tag de fechamento e ser aberta para que as pessoas pensem em plotar pontos de dados enquanto incluem informações direcionais.
Sextus Empiricus

Respostas:


14

Parece que os dados consistem em vetores de coordenadas (x, y) e ângulos. Vamos simular alguns como um exemplo:

set.seed(43)
x <- rnorm(50)
y <- rnorm(50)
angles <- runif(50, min=-pi, max=pi)

Traçar os locais:

plot(x, y, pch=19, cex=0.8, col="Blue")

Adicione setas para mostrar as orientações nesses pontos:

length <- 0.2
arrows(x, y, x1=x+length*cos(angles), y1=y+length*sin(angles), 
       length=0.05, col="Gray")

Hipopótamos


1
Isso realmente ajudou muito obrigado! Estou trabalhando para adaptá-lo aos meus dados e estou ansioso para ver a saída da plotagem :) Obrigado novamente!
Cara12

O código deve ser corrigido o mais R trabalha sempre com ângulos em radianos: cos(angles*pi/180) e sin(angles*pi/180) com angles entre 0 e 360.
DJack

@DJack Obrigado por apontar isso. Felizmente, neste caso, faz pouca diferença (e, portanto, não preciso recalcular o exemplo), porque uma distribuição uniforme em radianos não é muito diferente de uma distribuição uniforme em radianos (módulo ), mas é importante obter esses detalhes computacionalmente corretos. [180,180][π,π]2π
whuber

3

Para adicionar à resposta por @whuber. As funções ms.arrowse my.symbolsno TeachingDemospacote para R podem ser interessantes. Eles também traçariam as flechas, mas você pode dar as angulações diretamente, em vez de calcular seno e cosseno, também facilita se você deseja que as flechas sejam centralizadas nos pontos, em vez de se originarem dos pontos.


Muito obrigado a todos, vou enviar isso ao meu supervisor e teremos todas as suas sugestões!
Cara
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.