我有两列数据,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自动从数据值设置ylims。已尝试过yaxt
,yaxp
,ylims
的各种组合,但未成功。
任何建议都将不胜感激。
谢谢, 安扬
答案 0 :(得分:2)
您需要告诉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")
哪个产生
答案 1 :(得分:2)
除了Gavin的优秀答案之外,我还认为我会提到在这些情况下另一个常见的习惯是创建一个具有正确限制的空图,然后使用points
填充它,{{1等等。
使用Gavin的示例数据:
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")
导致type = "n"
根据我们提供的x和y值的范围仅创建空的绘图窗口。然后我们在这个现有图上的两列使用plot
。