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

R_U*_*ser 11 plot r gnuplot

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

在gnuplot中我会使用该replot命令.

plot ...
set title "The same plot with logarithmic axes"
set logscale
replot
Run Code Online (Sandbox Code Playgroud)

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

谢谢你的帮助,

斯文

Rei*_*son 12

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

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

  1. 如果这只适合您,请在知道R的文本编辑器/ IDE中编写代码,并且可以一次向R发送代码块.这样生成图形的代码就会记录在一个单独的脚本中,您可以将其粘贴到/发送到R每次都会对脚本进行所需的更改.
  2. 如果您经常这样做,那么请自己编写一个包装器绘图函数,它封装了您想要的绘图代码,但允许您传入参数来改变您想要的方面.

Lattice和ggplot2有点不同,因为它们基于网格图形并创建在打印时在设备上生成绘图的对象.可以操纵该对象来改变绘制的内容,并且使用网格可以将视图推入/移出视口.

  • 只是为了加入Gavin的建议.格点图有一种更新方法,因此如果保存创建的对象,则可以使用更新功能更新标题之类的内容.可以使用"+"更新ggplot2对象. (2认同)