[英]Combining 2 datasets in a single plot in R
我有两列数据, 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 g.delta
变化。
绘制曲线时,y轴从1延伸到-7。 因此,尽管所有f.delta
点都可见,但是任何y> 1的f.delta
点都被g.delta
了。
如何阻止R从数据值自动设置ylim。 尝试了yaxt
, yaxp
和ylims
各种组合, yaxp
ylims
。
任何建议将不胜感激。
谢谢,安妮
您需要告诉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")
哪个产生
除了Gavin的出色回答外,我还想提到一些在这种情况下的常见用法,即创建一个具有正确限制的空图,然后使用points
, lines
等填充它。
使用加文的示例数据:
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
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.