我想把y和y画在同一个图上。
x <- seq(-2, 2, 0.05)
y1 <- pnorm(x)
y2 <- pnorm(x, 1, 1)
plot(x, y1, type = "l", col = "red")
plot(x, y2, type = "l", col = "green")
但当我这样画的时候,它们就不在同一个图上了。
在Matlab中是可以的,但有人知道在R中怎么做吗?
我想把y和y画在同一个图上。
x <- seq(-2, 2, 0.05)
y1 <- pnorm(x)
y2 <- pnorm(x, 1, 1)
plot(x, y1, type = "l", col = "red")
plot(x, y2, type = "l", col = "green")
但当我这样画的时候,它们就不在同一个图上了。
在Matlab中是可以的,但有人知道在R中怎么做吗?
当前回答
如果您使用的是基础图形(即不是晶格/网格图形),那么您可以通过使用点/线/多边形函数来模拟MATLAB的保持特性,从而在不开始新的图形的情况下为图形添加额外的细节。在多图布局的情况下,您可以使用par(mfg=…)来选择将内容添加到哪个图中。
其他回答
我们也可以使用格库
library(lattice)
x <- seq(-2,2,0.05)
y1 <- pnorm(x)
y2 <- pnorm(x,1,1)
xyplot(y1 + y2 ~ x, ylab = "y1 and y2", type = "l", auto.key = list(points = FALSE,lines = TRUE))
对于特定的颜色
xyplot(y1 + y2 ~ x,ylab = "y1 and y2", type = "l", auto.key = list(points = F,lines = T), par.settings = list(superpose.line = list(col = c("red","green"))))
如果你想把图分成两列(2个相邻的图),你可以这样做:
par(mfrow=c(1,2))
plot(x)
plot(y)
参考链接
如果您使用的是基础图形(即不是晶格/网格图形),那么您可以通过使用点/线/多边形函数来模拟MATLAB的保持特性,从而在不开始新的图形的情况下为图形添加额外的细节。在多图布局的情况下,您可以使用par(mfg=…)来选择将内容添加到哪个图中。
与其将要绘制的值保存在数组中,不如将它们存储在矩阵中。默认情况下,整个矩阵将被视为一个数据集。然而,如果你在图中添加相同数量的修饰符,例如col(),就像你在矩阵中有行一样,R会发现每一行都应该被独立对待。例如:
x = matrix( c(21,50,80,41), nrow=2 )
y = matrix( c(1,2,1,2), nrow=2 )
plot(x, y, col("red","blue")
这应该可以工作,除非您的数据集大小不同。
Idiomatic Matlab plot(x1,y1,x2,y2)可以用ggplot2在R中翻译,例如:
x1 <- seq(1,10,.2)
df1 <- data.frame(x=x1,y=log(x1),type="Log")
x2 <- seq(1,10)
df2 <- data.frame(x=x2,y=cumsum(1/x2),type="Harmonic")
df <- rbind(df1,df2)
library(ggplot2)
ggplot(df)+geom_line(aes(x,y,colour=type))
灵感来自赵婷婷x轴范围不同的双线图使用ggplot2。