R:为什么 do.call 图带有 y 值

标签 r plot

我正在使用 do.call 构建函数。但我遇到了这样的问题:

z<-sample(1:3, 100, T)
y<-rnorm(100)
plot.list <- c(list(x=z,y=y))
do.call(plot, plot.list)

为什么绘图包含 y 值?

谢谢!

最佳答案

发生这种情况是因为 plot.default 尝试为 xy 创建合理的标签,如果 xlabylabNULL

使用

deparse(substitute(y))

但是,使用do.call创建列表,并且称为y的变量被其内容替换,因此这种方法使用整个变量呈现标签

foo <- function(y) deparse(substitute(y))
> do.call(foo, list(y=y))
 [1] "c(1.19006018249756, -0.50627079218304, -0.103312348822805, 0.395028889714542, " 
 [2] "1.25258077222837, 2.63766225444435, 0.260296813253391, 0.280839960496168, "     
 [3] "-1.47428483557887, -0.585934600873922, 0.879979238185618, -0.0871689899965067, "
 ..... <truncated>

显式设置 xlabylab 是正确的方法。

do.call(plot, list(x=z,y=y, xlab = "x",ylab="y"))

关于R:为什么 do.call 图带有 y 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20207355/

相关文章:

r - H2O R 变量重要性截断列表

python - matplotlib 布局类似于手动绘制

r - 我几乎已经成功地将 latex 字体放入 R 图中,但它略有偏差

r - 将文本粘贴为 biglm 的公式

使用 UTF-8 编码的 read.csv()

javascript - 是否可以在plotly.js箱形图上叠加标记?

R - 定位两条曲线的交点

javascript - 下载的 d3 散点图图像中缺少线

从文件中在 gnuplot 中绘制球体

r - 将多个函数应用于矩阵列表并在数据框中输出答案