2017-07-10 8 views
0

J'utilise le package plotrix pour faire les coordonnées polaires à partir de mes mesures.R plotrix, polar.plot sans discontinuité

Il semble que même lorsque je fournis des mesures pour tous les cordinets polaires de 1 à 360 degrés (ou également pour 0 à 359), les premier et dernier points ne sont pas connectés. Par exemple

require(plotrix) 
polar.plot(seq(1,360),polar.pos=1:360,radial.lim=c(0,361),rp.type="l") 

Une solution rapide et sale que j'ai trouvé d'ajouter un point de mesure, donc au lieu de 360 ​​361 utilisation

comme

polar.plot(seq(1,360),polar.pos=0:360,radial.lim=c(0,361),rp.type="l") 

qui donne des messages d'avertissement.

Warning messages: 
1: In cos(radial.pos[i, ]) * lengths[i, ] : 
    longer object length is not a multiple of shorter object length 
2: In sin(radial.pos[i, ]) * lengths[i, ] : 
    longer object length is not a multiple of shorter object length 

Existe-t-il des alternatives depuis montrant mes messages d'avertissement d'utilisateur final n'est pas quelque chose que j'aime voir :)

Je tiens à vous remercier pour votre réponse

Cordialement Alex

Répondre

0

Ça va les connecter dans l'ordre. Donc, si vous voulez ramener la ligne verticale finale à l'origine, vous devez ajouter un point de données à la fin du vecteur pour le faire. L'erreur que vous avez eu est que vous avez ajouté une valeur supplémentaire à un coord mais pas à l'autre, donc x et y ne sont pas égaux. Il a recyclé l'un des vecteurs pour le remplir, ce qui s'est passé pour vous donner ce que vous vouliez, mais vous a donné un avertissement qu'il le faisait.

polar.plot(c(seq(1,360), 1), 
      polar.pos = c(1:360, 1), 
      radial.lim = c(0,361), 
      rp.type = "l") 

enter image description here

+0

très bonne réponse. Je vous remercie! –