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)

私の質問は 2 つあります。

  1. ドキュメントで見逃した plotrix でこれを制御する方法はありますか?
  2. この種の方位極座標プロットを簡単に処理できる別のパッケージはありますか?
4

2 に答える 2

3

show.grid.labelsこれらのラジアル ラベルの表示方法は、との 2 つのパラメータで制御できますradial.labels。詳細については、 を参照?radial.plotしてください。

show.grid.labels1 から 4 までの値を受け入れます ( または の値と同様です。またはposaxis参照してください)、表示される側を制御します。ラベルのベクトルを受け入れるので、ラベルを無効にしたい場合は、次のように動作します。?par?axisradial.labelsradial.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")

polar.plot

現在、軸はデータ ポイントの下に正しくプロットされています。ラベルは(合理的に)上にプロットされます。上記のオーバープロット オプションは、データをラベルに重ねる必要がある場合にうまく機能します。

于 2015-07-21T22:23:52.727 に答える