Повторить команду участка с незначительными изменениями в R

Я сделал график в R, и я хочу повторить все команды (например, plot(), legend() или line()), которые были выполнены для этого графика, с некоторыми незначительными изменениями. Например, я хочу установить оси в логарифмический масштаб и изменить название графика.

В gnuplot я бы использовал команду replot.

plot ...
set title "The same plot with logarithmic axes"
set logscale
replot

В R. возможно что-то подобное. Единственное, что приходит мне на ум сделать (помимо изменения значений вручную и повторного запуска строк кодов), было бы создание функции, которая запрашивает все параметры, которые может быть изменен пользователем.

Спасибо за вашу помощь,

Свен

Ответ 1

R использует ручную и бумажную графическую модель - как только график будет нарисован на устройстве, которое оно есть. Если вы хотите изменить какой-либо аспект сюжета, вам нужно воспроизвести вызовы графической функции, которые производят график с изменениями, внесенными в код.

В зависимости от того, что вы действительно делаете, есть два варианта:

  • Если это только для вас, напишите код в текстовом редакторе /IDE, который знает R и может отправлять куски кода за раз до R. Таким образом, код для создания фигуры записывается в отдельный script, который вы можете вставлять/отправлять R, внося необходимые изменения каждый раз в script.
  • Если вы собираетесь делать это часто, напишите себе функцию построения обертки, которая инкапсулирует код графика, который вы хотите, но позволяет передавать аргументы, чтобы изменить нужные вам аспекты.

Решетка и ggplot2 немного отличаются, поскольку они основаны на сетке графики и создают объекты, которые при печати производят график на устройстве. Можно манипулировать этим объектом, чтобы изменить то, что нарисовано, и с сеткой можно нажать и поп-вещи в/в окне просмотра.