graphique circulaire de distribution d'angles...?

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Thomas Delattre
Messages : 20
Enregistré le : 19 Aoû 2008, 16:01

graphique circulaire de distribution d'angles...?

Messagepar Thomas Delattre » 25 Mar 2009, 15:48

Bonjour à tous,

je cherche à réaliser une représentation graphique de distribution d'angles comme celle-ci :

http://www.biomedcentral.com/content/figures/1471-2148-7-4-5.jpg

J'ai cherché du côté de windrose et density.circular (package CircStats) mais ça ne me semble pas aussi satisfaisant, visuellement parlant.

Quelqu'un aurait-il une idée? Merci d'avance! :D

Thomas

Olivier Delaigue
Messages : 220
Enregistré le : 05 Déc 2006, 07:38

Messagepar Olivier Delaigue » 25 Mar 2009, 16:06

viewtopic.php?p=7145&highlight=#7145

Code : Tout sélectionner

library(plotrix)
testlen<-c(rnorm(36)*2+5)
testpos<-seq(0,350,by=10)
polar.plot(testlen,testpos,main="Test Polar Plot",lwd=3,line.col=4, rp.type = "p")

Thomas Delattre
Messages : 20
Enregistré le : 19 Aoû 2008, 16:01

Messagepar Thomas Delattre » 26 Mar 2009, 11:10

Bonjour,
merci pour la rapidité de votre réponse! :D

Cependant ça ne semble pas tout à fait coller à ce que je cherche.

Visuellement, ça ressemble bien aux figures que je vous ai montré en exemple. Cependant, ce que je cherche à obtenir est la représentation sur une figure de ce type d'une distribution d'angles (en quelque sorte, l'équivalent circulaire de hist() ?)

Or si je comprend bien le fonctionnement de polar.plot() et radial.plot(), elles affichent la totalité des valeurs du jeu de données d'angles, point par point.

Comment faire pour obtenir une représentation plus synthétique? Merci!

Thomas Delattre
Messages : 20
Enregistré le : 19 Aoû 2008, 16:01

Messagepar Thomas Delattre » 27 Mar 2009, 15:37

Je me demande si il ne serait pas possible de "nourrir" polar.plot avec un density de mes données? (ou quelquechose d'approchant, contenant la distribution des données)
J'ai essayé mais polar.plot n'accepte pas les objets au format list... Pas facile!

Eric Pagot
Messages : 195
Enregistré le : 15 Fév 2007, 17:10

Messagepar Eric Pagot » 27 Mar 2009, 16:17

A priori il est possible de reprendre des données à partir de l'histogramme :
testlen<-c(rnorm(36)*2+5)
histo<-hist(testlen)
testpos<-histo$mids/max(histo$breaks)*360
polar.plot(histo$counts,testpos,main="Test Polar Plot",lwd=3,line.col=4, rp.type = "p")
Vétérinaire CTPA

Thomas Delattre
Messages : 20
Enregistré le : 19 Aoû 2008, 16:01

Messagepar Thomas Delattre » 31 Mar 2009, 16:27

Jolie approche, je garde le "truc" pour une autre fois...
J'ai essayé, mais à priori le fait que ça ne fonctionne pas est dû à la conception du polar.plot. Pour ce que j'en comprend, il prend la première valeur (dans l'ordre où elles sont fournies) et la plote sur l'angle correspondant, tout près du centre de la "cible". Puis il recommence avec la valeur suivante en s'éloignant un peu plus du centre, etc. (ça donne une espèce de spirale). Bien sûr si je me plante totalement il ne faut pas hésiter à me le dire!

Je me suis rabattu sur density.circular qui donne clairement les infos que je souhaite représenter, même si ils est moins satisfaisant visuellement.

En tout cas merci beaucoup pour votre aide!


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité