¿Cómo puedo producir un diagrama que muestre los ángulos direccionales de mis puntos? [cerrado]

8

Quiero poder comparar los ángulos de los vecinos en una manada de hipopótamos. Tengo datos para las coordenadas x e y y los ángulos que están enfrentando (usando imageJ , los ángulos están entre -180 y 180, siendo 0 una línea recta horizontal a través del centro de la imagen). He trazado la función para ver si a mis hipopótamos les gusta orientarse hacia personas cercanas, pero me encantaría poder calcular una representación visual de su orientación en el rebaño utilizando .sol(r)R

Cualquier ayuda sería muy apreciada, ¡ Rtodavía no estoy alfabetizado!

Cara
fuente
1
Echa un vistazo al paquete circular. Tiene varias parcelas que pueden ayudarlo, y también algunas buenas funciones.
Peter Flom
1
Me interesaría aprender más sobre qué "sol(r)"representa y cómo se calcula.
whuber
1
Esta pregunta parece estar fuera de tema porque se trata de codificar en R y no de estadísticas.
John
Edite su pregunta para enfatizar más claramente los aspectos estadísticos / de visualización de datos de su pregunta sobre los aspectos 'qué líneas de código R debo escribir'. ¿Podrías aclarar también quésoles por favor?
Glen_b: reinstala a Monica el
La pregunta no es tan clara "¿Cómo puedo producir un diagrama que muestre los ángulos direccionales de mis puntos?" pero está fuera de tema ya que se trata de 'producción'. Si simplemente cambiamos el título a "¿Cómo debo trazar los ángulos direccionales de mis puntos?" entonces esta pregunta puede liberarse de la etiqueta de cierre y estar abierta para que las personas den su opinión sobre el trazado de puntos de datos e incluyan información direccional.
Sextus Empiricus

Respuestas:

14

Parece que los datos consisten en vectores de coordenadas (x, y) y los ángulos. Simulemos algunos como ejemplo:

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

Trazar las ubicaciones:

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

Agregue flechas para mostrar las orientaciones en estos puntos:

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

Hipopótamos

whuber
fuente
1
¡Esto realmente ha ayudado a muchas gracias! Estoy trabajando en adaptarlo para mis datos y estoy ansioso por ver el resultado de la trama :) ¡Gracias de nuevo!
Cara
El código debe ser corregido como R trabaja siempre con ángulos en radianes: cos(angles*pi/180) y sin(angles*pi/180) con angles entre 0 y 360.
Djack
@DJack Gracias por señalar eso. Afortunadamente en este caso, hace poca diferencia (y, por lo tanto, no necesito volver a calcular el ejemplo), porque una distribución uniforme en[-180,180] radianes no es muy diferente a una distribución uniforme en [-π,π] radianes (módulo 2π), pero es importante obtener estos detalles computacionalmente correctos.
whuber
3

Para agregar a la respuesta por @whuber. Las funciones ms.arrowsy my.symbolsen el TeachingDemospaquete para R pueden ser de interés. También trazarían las flechas, pero puede dar los ángulos directamente en lugar de calcular el seno y el coseno, también lo hace más fácil si desea que las flechas se centren en los puntos en lugar de originarse en los puntos.

Greg Snow
fuente
¡Muchas gracias a todos, le enviaré esto a mi supervisor y tendremos en cuenta todas sus sugerencias!
Cara