Comment puis-je produire un tracé montrant les angles directionnels de mes points? [fermé]

8

Je veux pouvoir comparer les angles des voisins dans un troupeau d'hippopotames. J'ai des données pour les coordonnées x et y et les angles auxquels ils sont confrontés (en utilisant imageJ , les angles sont compris entre -180 et 180, 0 étant une ligne droite horizontale traversant le milieu de l'image). J'ai tracé leg(r)fonctionner pour voir si mes hippopotames «aiment» s'orienter vers des individus proches, mais j'aimerais pouvoir calculer une représentation visuelle de leur orientation dans le troupeau en utilisant R.

Toute aide serait très appréciée, je ne suis pas encore vraiment Ralphabétisée!

Cara
la source
1
Jetez un œil à l'emballage circulaire. Il a plusieurs tracés qui peuvent vous aider, ainsi que de belles fonctions.
Peter Flom
1
Je serais intéressé à en savoir plus sur ce que "g(r)"représente et comment il est calculé.
whuber
1
Cette question semble être hors sujet car elle concerne le codage en R et non les statistiques.
John
Veuillez modifier votre question pour souligner plus clairement les aspects statistiques / visualisation des données de votre question sur les aspects "quelles lignes de code R dois-je taper". Pourriez-vous également préciser cegest s'il vous plaît?
Glen_b -Reinstate Monica
La question n'est pas si claire: "Comment puis- je produire un graphique montrant les angles directionnels de mes points?" mais c'est hors sujet puisqu'il s'agit de «production». Si nous changeons simplement le titre en "Comment dois- je tracer les angles directionnels de mes points?" alors cette question peut être libérée de la balise de fermeture et être ouverte aux personnes pour donner leur avis sur le traçage des points de données tout en incluant des informations directionnelles.
Sextus Empiricus

Réponses:

14

Il semble que les données soient constituées de vecteurs de coordonnées (x, y) et d'angles. Simulons-en quelques exemples:

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

Tracez les emplacements:

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

Ajoutez des flèches pour montrer les orientations à ces points:

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

Hippopotames

whuber
la source
1
Cela a vraiment beaucoup aidé à vous remercier! Je travaille à l'adapter à mes données et j'ai hâte de voir la sortie du tracé :) Merci encore!
Cara
Le code doit être corrigée R travaille toujours avec des angles en radians: cos(angles*pi/180) et sin(angles*pi/180) avec angles entre 0 et 360.
Djack
@DJack Merci de l'avoir signalé. Heureusement dans ce cas cela fait peu de différence (et donc je n'ai pas besoin de recalculer l'exemple), car une distribution uniforme sur[180,180] radians n'est pas très différent d'une distribution uniforme sur [π,π] radians (modulo 2π), mais il est important que ces détails soient corrects sur le plan informatique.
whuber
3

Pour ajouter à la réponse de @whuber. Les fonctions ms.arrowset my.symbolsdans le TeachingDemospackage pour R peuvent être intéressantes. Ils traceraient également les flèches mais vous pouvez donner les anges directement plutôt que de calculer le sinus et le cosinus, cela facilite également si vous voulez que les flèches soient centrées sur les points plutôt que provenant des points.

Greg Snow
la source
Merci beaucoup à tous, j'enverrai ceci à mon superviseur et nous aurons toutes vos suggestions!
Cara