[R] Plotting problems directional or rose plots

alanm (Alan Mitchell) alanm at crab.org
Wed Jul 27 16:04:19 CEST 2011


I'm not sure if there are any packages that do this, but I've created similar plots in R.  The easiest way I've found is to think in terms of a unit circle in polar coordinates for drawing the plot.  
I haven't tested the code below, but it will give you the idea.


dist=dist/9000

t = seq(0,360,length.out=1000)*pi/180  #want radians not degrees

angle=angle*pi/180

circle$x=cos(t)
circle$y=sin(t)

plot(circle$x,circle$y,type='l')

You can use the polygon function to draw the 'petals'.

# for 0-10

t0 = seq(0,10,length.out=50)*pi/180

petal0$x = dist[1]*cos(t0)
petal0$y = dist[1]*sin(t0)

polygon( x=c(0,petal0$x,0),y=c(0,petal0$y,0),col=color.list[1])


I hope this helps.  

Alan Mitchell





-----Original Message-----
From: kitty [mailto:kitty.a1000 at gmail.com]
Sent: Tue 7/26/2011 2:20 PM
To: r-help at r-project.org
Subject: [R] Plotting problems directional or rose plots
 
Hi,

I'm trying to get a plot that looks somewhat like the attached image
(sketched in word).
I think I need somthing called a rose diagram? but I can't get it to do what
I want. I'm happy to use any library.

Essentially, I want a circle with degree slices every 10 degrees with 0 at
the top representing north, and
'tick marks' around the outside in 10 degree increments to match the slices
(so the slices need to be ofset by 5 degrees so the 0 degree slice actually
faces north)
I then want to be able to colour in the slices depending on the distance
that the factor extends to; so for example the 9000 dist is the largest in
the example so should fill the slice,
a distance in this plot of 4500 would fill halfway up the slice.
I also want to be able to specify the colour of each slice so that I can
relate it back to the spatial correlograms I have.

I have added some sample data below.

Thank you for reading my post,
All help is greatly appreciated,
K

sample data:

#distance factor extends to
dist<-c(5000,7000,9000,4500,6000,500)

#direction
angle<-c(0,10,20,30,40,50)

#list of desired colour example, order corrisponds to associated
angle/direction
color.list<-c('red','blue','green','yellow','pink','black')

(my real data is from 0 to 350 degrees, and so I have corresponding distance
and colour data for each 10 degree increment).



More information about the R-help mailing list