Why is R inconsistent with the add
parameter in the plot()
function? It sometimes works and sometimes doesn't! In this example, it takes the parameter add=TRUE
with no problem:
plot(0:10, 0:10*3) plot(identity, add=TRUE, xlim=c(0,10)) plot(function (x) { sin(x)*10 }, add=TRUE, xlim=c(0,10))
But when I issue
plot(c(2, 3, 4), c(20,10,15), add=TRUE, pch="A")
It doesn't work!! It says that "add" is not a graphical parameter.
Please do not write that I should use points()
instead. I know I can use it. I want to understand the strange behaviour of R - why does it sometimes work and sometimes not?
This is admittedly annoying and inconsistent, but it's explicable.
identity
is an object of a class — function
— that has a plot
method (plot.function
) with an add
argument, while the default plot
method does not have an add
argument.
In general, when trying to plot object bar
, you should try class(bar)
; if it is of class foo
then try methods(class="foo")
to see that it has a plot method, or methods("plot")
to see that plot.foo
exists. Try ?plot.foo
(or help("plot.foo")
to see help, or plot.foo
to see the function itself. (If the method is a private function in the package mypkg
you may need mypkg:::plot_foo
or or getAnywhere(plot.foo)
to find it.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With