在R语言中将两个数据集合并到一个图形中

3

我有两列数据,f.deltag.delta,想在R中绘制散点图。

这是我的做法:

plot(f.delta~x, pch=20, col="blue")
points(g.delta~x, pch=20, col="red")

问题在于: f.delta 的值从 0 变化到 -7;g.delta 的值从 0 变化到 10。
当绘图时,y 轴的范围从 1 到 -7。因此,虽然所有 f.delta 点都可见,但任何具有 y>1 的 g.delta 点将被切断而无法查看。
如何停止 R 自动根据数据值设置 ylims。已尝试过各种组合的 yaxtyaxpylims,但均未成功。
非常感谢您的建议。
谢谢, Anjan
2个回答

5
除了Gavin的精彩回答之外,我还想提到在这种情况下另一个常见的习语是创建一个带有正确限制的空图,然后使用pointslines等填充它。
使用Gavin的示例数据:
with(df,plot(range(x),range(f.delta,g.delta),type = "n"))
points(f.delta~x, data = df, pch=20, col="blue")
points(g.delta~x, data = df, pch=20, col="red")

type = "n"会导致plot只创建一个空的绘图窗口,基于我们提供的x和y值的范围。然后我们在这个现有的绘图上使用points来表示两列数据。


3

您需要告诉 R 数据的范围,并将其作为参数 ylim 传递给 plot()(注意参数是 ylim 而不是 ylims!)。以下是一个示例:

set.seed(1)
df <- data.frame(f.delta = runif(10, min = -7, max = 0),
                 g.delta = runif(10, min = 0, max = 10),
                 x = rnorm(10))

ylim <- with(df, range(f.delta, g.delta)) ## compute y axis limits

plot(f.delta ~ x, data = df, pch = 20, col = "blue", ylim = ylim)
points(g.delta ~ x, data = df, pch = 20, col = "red")

这将产生以下结果:

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接