I'm using a polar plot to describe satellite position during a time series. The following question uses the polar.plot function from the R package plotrix. An example plot:
library(plotrix)
polar.plot(c(0,1,3,4),c(30,60,90,120),start=90,clockwise=TRUE,rp.type="s",
point.symbols=19,radial.lim=c(0,5),boxed.radial=F)
The issues I'm running across is that this function plots the labels and axis over the data values (see radial positions 0 and 3), and I don't see a way to control this behavior. I can run a workaround by adding the data values again (adding to the previous plot) with axis and labels turned off, but this is less than elegant:
polar.plot(c(0,1,3,4),c(30,60,90,120),start=90,clockwise=TRUE,rp.type="s",
grid.left=F,point.symbols=19,show.radial.grid=FALSE,
show.grid.labels=FALSE,show.grid=FALSE,labels=NULL,add=TRUE)
My question is two fold:
You can control the way those radial labels are displayed with two parameters: show.grid.labels and radial.labels. See ?radial.plot for more complete information.
show.grid.labels accepts values from 1 to 4 (similar to that of pos or axis, see ?par or ?axis) controlling the side on which they are displayed. radial.labels accepts a vector of labels, so if you want the labels to be turned down: radial.labels = "" works,
library(plotrix)
polar.plot(c(0,1,3,4),c(30,60,90,120),start=90,clockwise=TRUE,rp.type="s",
point.symbols=19,radial.lim=c(0,5),boxed.radial=FALSE,
show.grid.labels=2)

polar.plot(c(0,1,3,4),c(30,60,90,120),start=90,clockwise=TRUE,rp.type="s",
point.symbols=19,radial.lim=c(0,5),boxed.radial=FALSE,
show.grid.labels=2, radial.labels=c("",1:5))

You can also get rid of the axial lines using show.radial.grid:
polar.plot(c(0,1,3,4),c(30,60,90,120),start=90,clockwise=TRUE,rp.type="s",
point.symbols=19,radial.lim=c(0,5),boxed.radial=FALSE,
show.grid.labels=2, radial.labels=c("",1:5),
show.radial.grid=FALSE)

However there doesn't seem to be a way of making the lines lie behind the labels and the points, so if you do want the lines to appear behind then your original idea was probably the best:
polar.plot(NA,NA,start=90,clockwise=TRUE,rp.type="",
radial.lim=c(0,5),boxed.radial=FALSE, show.grid.labels=2,
radial.labels=c("",1:5)) # First plotting the grid
polar.plot(c(0,1,3,4),c(30,60,90,120),start=90,clockwise=TRUE,rp.type="s",
point.symbols=19,radial.lim=c(0,5),show.grid=FALSE,
show.radial.grid=FALSE, add=TRUE) # Then the points without the grid

I don't know of any other package having a function handling this kind of plot, however if you want to create your own function, this answer to your previous question can definitely help you start.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With