I cannot find a straightforward way to make a nice image plot in R, but in polar coordinates. I'm basically attempting to find a R equivalent for the 'polarplot3d' function in MATLAB. I've been playing around with ggplot2 package but without much luck. Am I missing a package that contains functionality for what I'm attempting? thanks in advance for any pointers.
Ok, I'm trying to be more clear about what I'm trying to do. Lets say I want to define a polar coordinate grid, increments in the radial direction are 50m and 2.5 degrees in theta. This should look like a dartboard.
My data (r and angle in below code) are correspond to a radial distance measure and an angle. My desired z-value is the counts of a bivariate histogram between r and angle within the increments described above defining the grid.
My data is like the following:
# synthetic data for angle and distance # angle <- rnorm(500,mean=90,sd=15) r <- rnorm(500,mean=700,sd=200) # bivariate histogram # observations <- table(cut(angle,breaks=c(seq(0,360,by=2.5))),cut(r,breaks=c(seq(0,1400,by=50)))) # the 'z' data are in observations for each bin of bivariate histogram # # hot to plot a polar coord image? #Answer1:
It's <em>very</em> slow to render on my system, but
library(reshape2) library(ggplot2) mm <- melt(counts) ggplot(mm,aes(Var1,Var2,fill=value))+geom_tile()+coord_polar() ggsave("polar1.png")
appears to work.
<img alt="enter image description here" class="b-lazy" data-src="https://i.stack.imgur.com/joz6m.png" data-original="https://i.stack.imgur.com/joz6m.png" src="https://etrip.eimg.top/images/2019/05/07/timg.gif" />Answer2:
I think the following could work. Use
mapproject() from the
maproj library to transform my
xy coordinates acording to a polar projection (or another), Then use
fields package) function to build a image object from my new coordiantes and my Z values. Eventually use
library("mapproj") xyProj <- mapproject(x, y, projection="conic", parameters=-90) library("fields") im <- as.image(z, x=xyProj) image.plot(im)