1

我找不到一种直接的方法来在 R 中制作漂亮的图像图,而是在极坐标中。我基本上是在尝试为 MATLAB 中的“polarplot3d”函数找到 R 等效项。我一直在玩 ggplot2 包,但运气不佳。我是否缺少包含我正在尝试的功能的包?提前感谢您的任何指点。

好的,我正试图更清楚地了解我想要做什么。假设我要定义一个极坐标网格,径向增量为 50m,θ 为 2.5 度。这应该看起来像一个飞镖。

我的数据(下面代码中的 r 和角度)对应于径向距离测量和角度。我想要的 z 值是在上述定义网格的增量内 r 和角度之间的二元直方图的计数。

我的数据如下:

# 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? #
4

2 回答 2

3

在我的系统上渲染非常慢,但是

library(reshape2)
library(ggplot2)
mm <- melt(counts)
ggplot(mm,aes(Var1,Var2,fill=value))+geom_tile()+coord_polar()
ggsave("polar1.png")

似乎工作。

在此处输入图像描述

于 2013-12-07T17:52:37.930 回答
0

我认为以下可以工作。使用库中mapproject()的坐标maproj将我的xy坐标转换为极坐标投影(或另一个),然后使用as.image()(来自fields包)函数从我的新坐标和我的 Z 值构建图像对象。最终使用image.plot().

library("mapproj")
xyProj <- mapproject(x, y, projection="conic", parameters=-90)
library("fields")
im <- as.image(z, x=xyProj)
image.plot(im)
于 2013-12-07T17:59:57.533 回答