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点都是可见的,但任何g.deltay>1 的点都将从视图中截断。

如何阻止 R 从数据值中自动设置 ylims。尝试过各种 , , . 的组合,但yaxt均未yaxp成功ylims

任何建议将不胜感激。

谢谢,安詹

4

2 回答 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")

根据我们提供的 x 和 y 值的范围,仅创建空绘图窗口的type = "n"原因。plot然后我们使用points这个现有图上的两列。

于 2012-11-07T16:04:39.737 回答
3

您需要告诉 R 数据的限制是什么,并将其作为参数传递ylimplot()(注意参数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")

哪个生产

在此处输入图像描述

于 2012-11-07T15:57:55.587 回答