重复绘图命令,R中有微小的变化

时间:2011-06-17 17:48:30

标签: r plot gnuplot

我在R中制作了一个情节,我希望重复为此情节执行的所有命令(如plot()legend()line()),并进行一些细微的更改。例如,我想将轴设置为对数刻度并更改绘图的标题。

在gnuplot中我会使用replot命令。

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

这样的事情在R中是可能的。我想到的唯一一件事(除了手动更改值并重新运行代码行之外)将设置一个函数,该函数要求所有参数可能会被用户更改。

感谢您的帮助,

斯文

1 个答案:

答案 0 :(得分:12)

R使用笔和纸图形模型 - 一旦在设备上绘制了绘图。如果要更改绘图的某些方面,则需要使用对代码所做的更改来重放生成绘图的图形函数调用。

根据您的实际情况,有两种选择:

  1. 如果这只适合您,请在知道R的文本编辑器/ IDE中编写代码,并且可以一次向R发送代码块。这样生成图形的代码就会记录在一个单独的脚本中,您可以粘贴到/发送到R,每次都需要对脚本进行更改。
  2. 如果您要经常这样做,那么请自己编写一个封装绘图函数,封装您想要的绘图代码,但允许您传入参数以改变您想要的方面。
  3. Lattice和ggplot2略有不同,因为它们基于网格图形并创建在打印时在设备上生成绘图的对象。可以操纵该对象来改变绘制的内容,并且使用网格可以将视图推入/移出视口。