3

我正在使用极坐标图来描述时间序列中的卫星位置。以下问题使用 R 包 plotrix 中的 polar.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)

我遇到的问题是这个函数在数据值上绘制标签和轴(参见径向位置 0 和 3),我看不到控制这种行为的方法。我可以通过关闭轴和标签再次添加数据值(添加到上一个图)来运行解决方法,但这并不优雅:

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)

我的问题有两个:

  1. 有没有办法在我在文档中错过的 plotrix 中控制它?
  2. 是否有其他软件包可以轻松处理这种方位极坐标图?
4

2 回答 2

3

您可以使用两个参数控制这些径向标签的显示方式:show.grid.labelsradial.labels。有关?radial.plot更完整的信息,请参阅。

show.grid.labels接受从 1 到 4 的值(类似于posor axis,参见?paror ?axis)控制它们显示的一侧。radial.labels接受标签向量,所以如果你想拒绝标签:radial.labels = ""有效,

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))

在此处输入图像描述

您还可以使用以下方法摆脱轴线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)

在此处输入图像描述

然而,似乎没有办法让线条位于标签和点的后面,所以如果你确实希望线条出现在后面,那么你最初的想法可能是最好的:

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

在此处输入图像描述

我不知道有任何其他包具有处理这种情节的函数,但是如果你想创建自己的函数,这个对你之前问题的回答绝对可以帮助你开始。

于 2013-03-12T07:23:55.150 回答
0

这似乎已经修复。我没有查看更改日志来确定更改发生的位置,但它至少在 plotrix 3.5-12 中已修复。

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,grid.col="red",point.col="green")

极坐标图

目前,轴已正确绘制在数据点下方。标签(合理地)绘制在顶部。如果需要让数据覆盖标签,上面讨论的 overplot 选项会很好地工作。

于 2015-07-21T22:23:52.727 回答