我想把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中怎么做吗?
当前回答
与其将要绘制的值保存在数组中,不如将它们存储在矩阵中。默认情况下,整个矩阵将被视为一个数据集。然而,如果你在图中添加相同数量的修饰符,例如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")
这应该可以工作,除非您的数据集大小不同。
其他回答
Lines()或points()将添加到现有的图形中,但不会创建新的窗口。所以你需要这么做
plot(x,y1,type="l",col="red")
lines(x,y2,col="green")
如果你想把图分成两列(2个相邻的图),你可以这样做:
par(mfrow=c(1,2))
plot(x)
plot(y)
参考链接
我认为你想要的答案是:
plot(first thing to plot)
plot(second thing to plot,add=TRUE)
你也可以使用ggvis创建你的绘图:
library(ggvis)
x <- seq(-2, 2, 0.05)
y1 <- pnorm(x)
y2 <- pnorm(x,1,1)
df <- data.frame(x, y1, y2)
df %>%
ggvis(~x, ~y1, stroke := 'red') %>%
layer_paths() %>%
layer_paths(data = df, x = ~x, y = ~y2, stroke := 'blue')
这将创建以下情节:
数学函数使用曲线。 并使用add=TRUE来使用相同的绘图和轴。
curve( log2 , to=5 , col="black", ylab="log's(.)")
curve( log , add=TRUE , col="red" )
curve( log10, add=TRUE , col="blue" )
abline( h=0 )