Удалить метки оси из графика в R после того, как график уже был создан - PullRequest
1 голос
/ 15 февраля 2020

Я использую функцию plot определенного пакета, а именно библиотеку SPEI . Эта функция, по-видимому, не принимает какие-либо параметры для изменения внешнего вида графика при его создании.

Я хотел бы знать, как удалять значения осей, добавлять новые и (в идеале) переименовывать x- ось после того, как график уже создан.

Обратите внимание, что я видел другие подобные темы (например: Удалить значения оси графика ), и они не применимы к моей ситуации. Я знаю, что при вызове функций базового графика в R вы можете установить xaxt = "n", axes= FALSE, et c.

Вот краткая версия того, что я имею в виду:

library(SPEI)
data(wichita)
x <- spei(wichita[,'PRCP'], 1) 
plot.spei(x, main = "Here's a plot")
plot.spei(x, main = "Also a plot", xaxt = "n") #Note that xaxt does not affect output

1 Ответ

3 голосов
/ 15 февраля 2020

Эта функция использует базовую графику и не позволяет передавать какой-либо параметр через функцию. Невозможно удалить метки оси X без редактирования функции. Вот способ сделать копию и изменить только одну строку, которую нужно отредактировать. (Обратите внимание, поскольку этот метод использует номера строк, он довольно fr agile, это было протестировано с SPEI_1.7)

my_plot_spei <- plot.spei
my_plot_spei_body <- as.list(body(my_plot_spei))
my_plot_spei_body[[c(14,4,5)]] <- quote(plot(datt, type = "n", xlab = "", ylab = label, main = main[i], ...))
body(my_plot_spei) <- as.call(my_plot_spei_body)

, тогда это будет работать

x <- spei(wichita[,'PRCP'], 1) 
my_plot_spei(x, main = "Here's a plot", xaxt="n")

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...