Повторите команду заговора с незначительными изменениями в R - PullRequest
11 голосов
/ 17 июня 2011

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

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

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

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

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

Sven

1 Ответ

12 голосов
/ 17 июня 2011

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

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

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

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

...