在R

在R,r,plot,R,Plot,我有两列数据,f.delta和g.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根据数据值自动设置YLIM。尝试了各种yaxt、ya

我有两列数据,
f.delta
g.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根据数据值自动设置YLIM。尝试了各种
yaxt
yaxp
ylims
组合,但均未成功

如有任何建议,将不胜感激

谢谢,
Anjan

您需要告诉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")
set.seed(1)

df除了加文出色的回答之外,我还想提到,在这些情况下,另一个常见的习惯用法是创建一个具有正确限制的空图,然后使用
线
等填充它

使用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值范围,仅创建空打印窗口。然后,我们对现有绘图上的两列使用