2013-03-11 4 views
3

나는 극좌표를 사용하여 시계열 중 위성 위치를 설명하고 있습니다. 다음 질문은 R 패키지 plotrix의 polar.plot 함수를 사용합니다. 예 줄거리 : 나는에 걸쳐 실행 해요Plotrix R 패키지 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. 이런 종류의 방위각을 쉽게 처리 할 수있는 또 다른 패키지가 있습니까? 극좌표가 있습니까?
+0

왜'boxed.radial = F'을 사용하고 있습니까? – agstudy

+1

'boxed.radial = F'는 방사형 라벨 주위의 상자를 투명하게 만듭니다. 라벨 뒤에있는 점을 완전히 가려 내지 않아서 도움이되지만 축 선에 의한 오버 플로팅은 변경되지 않습니다. – Nate

답변

0

이 문제가 수정 된 것으로 보입니다. 나는 변화가 일어난 곳을 확인하기 위해 변경 로그를 보지 못했지만, 적어도 플롯 릭스 3.5-12로 고정되어있다.

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,grid.col="red",point.col="green") 
현재 축은 데이터 포인트에서 제대로 그려진다. 레이블이 (합리적으로) 맨 위에 표시됩니다.위에 논의 된 overplot 옵션은 데이터 오버레이를 레이블에 두어야 할 필요가있는 경우 잘 작동합니다.

3

show.grid.labelsradial.labels의 두 매개 변수를 사용하여 방사형 레이블이 표시되는 방식을 제어 할 수 있습니다. 더 자세한 정보는 ?radial.plot을 참조하십시오.

show.grid.labels는 1 내지 4의 값을 받아들이 표시되는 쪽을 제어 (posaxis 또는 유사한을 ?par 또는 ?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) 

enter image description here

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

enter image description here

을 를 사용하여 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) 

enter image description here

그러나이 선이 라벨과 점 뒤에 거짓말을 만드는 방법이 될 것 같다, 그래서 당신이 할 경우 선이 다음 원래의 아이디어는 아마 최고였다 뒤에 표시하지 않습니다

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 

enter image description here

난 당신이 자신의 기능을 만들려는 그러나 경우, 플롯 이런 종류의 처리 기능을 갖는 다른 패키지 모르겠어요, this answer to your previous question 확실히 시작 도움이 될 수 있습니다.

+0

의견을 보내 주셔서 감사합니다. 귀하가 언급 한 플래그를 알고 있습니다. 귀하의 의견은 제가 현재있는 곳에서 요약됩니다. 이전 질문에 관해서는, 나는 그 접근법으로 빠른 테스트를했으며, 약간의 재 작성으로 작동 할 수있었습니다. 나는 R의 많은 부분 에서처럼, 쉽게 밖으로 물건을 멋지게 꾸며 놓은 누군가가 그것을 발견하지 못했기를 희망했다. – Nate

+0

그들은 이미 "하드"파트 (플롯 자체)를 패키지화했습니다. 심미성을 연마하는 것은 사용자의 직업 중 일부라고 생각합니다. 당신이 언급 한 "누군가가 거기에있다"는 것을 기억하십시오. 어쩌면 당신은 패키지 플롯 릭스의 저자들 (그들 중 일부는 StackOverflow, BenBolker의 활성 회원)을 제안 할 수 있습니다. 예를 들어 다음 릴리스에서 일부 변경 사항이 포함될 것입니다. – plannapus