Ошибка пространственного графика после изменений в фрейме данных

Я использовал следующий код для успешного построения пространственного графика:

colours<-(brewer.pal(7, "Blues"))
brks<-classIntervals(EDdata2$SIRt, n=7, style="fixed",fixedBreaks=c(0,1,2,5.0,10.0,20,50,120))
plot(brks, pal=colours)
brks<-brks$brks
plot(EDdata2, col=colours[findInterval(EDdata2$SIRt, brks,
                             all.inside=TRUE)], axes=F, border=FALSE)

Однако я внес некоторые изменения в фрейм данных пространственных полигонов EDdata2, добавив несколько дополнительных столбцов и изменив способ вычисления SIRt (однако он остается столбцом чисел - они просто вычисляются по-другому)

Теперь, когда я пытаюсь запустить код графика, я получаю сообщение об ошибке, несмотря на то, что не внес никаких изменений в код построения:

Error in plot.default(...) : formal argument "axes" matched by multiple actual arguments

Что тут происходит ?


person user2498193    schedule 30.06.2013    source источник


Ответы (1)


Это означает, что автор пакета безымянного пакета, который вы использовали для создания EDdata2, определил plot метод для любого класса EDdata2, который мог бы использовать аргумент axes, а также использовал механизм тройной точки для передачи аргументов в plot.default без фильтрации этого аргумента. (Это говорит о том, что автор пакета на самом деле не хотел, чтобы вы создавали свои собственные оси, поэтому вам следует изучить страницу справки для plot.whatever, чтобы увидеть, предлагает ли она механизм для передачи значений, которые вы хотите использовать для 'at' и ' метки '.) Вам нужно будет провести подготовительную работу самостоятельно (или отредактировать свой ответ, чтобы сделать его более полным и воспроизводимым) для исследования.

Если этот код использует метод построения для класса SpatialPolygons в package: sp, тогда значение по умолчанию для осей уже FALSE.

help("SpatialPolygons-class", package="sp")

Конечно, это можно испортить, определив «F» как нечто иное, чем «FALSE», а затем используя axes=F. В текущем экземпляре может быть проще просто удалить этот аргумент из вызова.

person IRTFM    schedule 30.06.2013
comment
На самом деле - я понял это - я использовал слияние в своей новой версии, и это привело к преобразованию EDdata2 из пространственного фрейма данных в фрейм данных. Это источник проблемы !! Спасибо за Ваш ответ. Я поставлю зеленый флажок, чтобы закрыть это - person user2498193; 30.06.2013