Plotrix R пакет polar.plot символ перезаписать

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

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

2 ответа

Решение

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

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

Вы можете контролировать способ отображения этих радиальных меток с помощью двух параметров: 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)

введите описание изображения здесь

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

введите описание изображения здесь

Я не знаю ни одного другого пакета, имеющего функцию, обрабатывающую этот вид графика, однако, если вы хотите создать свою собственную функцию, этот ответ на ваш предыдущий вопрос может определенно помочь вам начать.

Другие вопросы по тегам