2013-03-11 7 views
3

Я использую полярный график для описания положения спутника во временном ряду. Следующий вопрос использует функцию polar.plot из графической матрицы R. Пример участок:Plotrix R package polar.plot symbol overwrite

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. Есть ли способ контролировать это в диаграмме, которую я пропустил в документации?
  2. Есть ли другой пакет, который может легко обрабатывать этот вид азимута полярный участок?
+0

Почему вы используете 'boxed.radial = F'? – agstudy

+1

'boxed.radial = F' делает поля вокруг радиальных меток прозрачными. Это помогает, не полностью заслоняя точку, которая стоит за меткой, но она не меняет строчную привязку по осям. – Nate

ответ

0

Это, кажется, исправлено. Я не смотрел журнал изменений, чтобы определить, где произошло изменение, но оно исправлено, по крайней мере, из графика 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

В настоящее оси правильно нанесены по точкам данных. Этикетки (разумно) нанесены сверху.Опция overplot, описанная выше, будет хорошо работать, если необходимо, чтобы данные накладывали метки.

3

Вы можете управлять тем, как эти радиальные метки отображаются с двумя параметрами: show.grid.labels и radial.labels. См. ?radial.plot для получения более полной информации.

show.grid.labels принимает значение от 1 до 4 (аналогичного такового pos или axis см ?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

 Смежные вопросы

  • Нет связанных вопросов^_^