繁体   English   中英

在R中的单个图中组合2个数据集

[英]Combining 2 datasets in a single plot in R

我有两列数据, 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 g.delta变化。

绘制曲线时,y轴从1延伸到-7。 因此,尽管所有f.delta点都可见,但是任何y> 1的f.delta点都被g.delta了。

如何阻止R从数据值自动设置ylim。 尝试了yaxtyaxpylims各种组合, yaxp ylims

任何建议将不胜感激。

谢谢,安妮

您需要告诉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")

哪个产生

在此处输入图片说明

除了Gavin的出色回答外,我还想提到一些在这种情况下的常见用法,即创建一个具有正确限制的空图,然后使用pointslines等填充它。

使用加文的示例数据:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM