这是这个问题的后续行动.
我想在同一个图上绘制多条曲线,但是我的新曲线与第一条曲线生成的y轴刻度相同.
请注意以下示例:
y1 <- c(100, 200, 300, 400, 500)
y2 <- c(1, 2, 3, 4, 5)
x <- c(1, 2, 3, 4, 5)
# first plot
plot(x, y1)
# second plot
par(new = TRUE)
plot(x, y2, axes = FALSE, xlab = "", ylab = "")
Run Code Online (Sandbox Code Playgroud)
这实际上是在图表的相同坐标上绘制两组值(因为我隐藏了将使用第二个图创建的新y轴).
那么我的问题是如何在绘制第二个图时保持相同的y轴刻度.
42-*_*42- 35
(典型的方法是只使用plot
一次来设置限制,可能包括所有系列组合的范围,然后使用points
和lines
添加单独的系列.)要plot
多次使用,par(new=TRUE)
你需要确保你的第一个情节有一个适当ylim
的接受所有系列(在另一种情况下,你可能还需要对xlim使用相同的策略):
# first plot
plot(x, y1, ylim=range(c(y1,y2)))
# second plot EDIT: needs to have same ylim
par(new = TRUE)
plot(x, y2, ylim=range(c(y1,y2)), axes = FALSE, xlab = "", ylab = "")
Run Code Online (Sandbox Code Playgroud)
下一个代码将更紧凑地执行任务,默认情况下,您将数字作为点,但第二个代码为您提供典型的R类型"点":
matplot(x, cbind(y1,y2))
matplot(x, cbind(y1,y2), pch=1)
Run Code Online (Sandbox Code Playgroud)
points
或者lines
如果
y2
稍后生成,或x
但仍应进入相同的坐标系.正如你y
的共享一样x
,你也可以使用matplot
:
matplot (x, cbind (y1, y2), pch = 19)
Run Code Online (Sandbox Code Playgroud)
(没有pch
matplopt
将绘制y
矩阵的列号而不是点).
你不是很清楚你想要什么,因为我认为@DWin在技术上是正确的,给出了你的示例代码.我觉得你真正想要的是这个:
y1 <- c(100, 200, 300, 400, 500)
y2 <- c(1, 2, 3, 4, 5)
x <- c(1, 2, 3, 4, 5)
# first plot
plot(x, y1,ylim = range(c(y1,y2)))
# Add points
points(x, y2)
Run Code Online (Sandbox Code Playgroud)
DWin的解决方案是在隐含的假设(基于您的示例代码)下运行,您希望绘制覆盖在原始比例上的第二组点.这就是为什么他的图像看起来像是在1,101等处绘制的.为什么plot
第二次调用不是你想要的,你想要使用添加到图中points
.所以我机器上面的代码产生了这个:
但是DWin关于使用的主要观点ylim
是正确的.
归档时间: |
|
查看次数: |
147477 次 |
最近记录: |