我有以下格式的输入数据。
x y z
0 2.2 4.5
5 3.8 6.8
10 4.6 9.3
15 7.6 10.5
如何在 R 中绘制 xy 散点图,如 excel(如下所示)?
(1) 在此处使用名为 df 的“水平”或“宽”data.frame
df <- data.frame(x = c(0, 5, 10, 15), y = c(2.2, 3.8, 4.6, 7.6),z = c(4.5, 6.8, 9.3, 10.5))
ggplot(df, aes(x)) +
geom_line(aes(y = y, colour = "y")) +
geom_line(aes(y = z, colour = "z"))
(2) 使用格子
library(lattice)
xyplot(x ~ y + z, data=df, type = c('l','l'), col = c("blue", "red"), auto.key=T)
(3) 把你原来的 df 变成一个“长”的 data.frame。这就是您通常如何处理数据的方式ggplot2
library(reshape)
library(ggplot2)
mdf <- melt(df, id="x") # convert to long format
ggplot(mdf, aes(x=x, y=value, colour=variable)) +
geom_line() +
theme_bw()
(4) 使用 matplot() 我并没有真正探索过这个选项,但这里有一个例子。
matplot(df$x, df[,2:3], type = "b", pch=19 ,col = 1:2)
如果你能说出你被困在这里的东西,它可能会有所帮助。这在 R 中真的很简单。您应该查找?plot和?lines的文档。对于一个简单的概述,Quick R非常棒。这是代码:
windows()
plot(x, y, type="l", lwd=2, col="blue", ylim=c(0, 12), xaxs="i", yaxs="i")
lines(x,z, lwd=2, col="red")
legend("topleft", legend=c("y","z"), lwd=c(2,2), col=c("blue","red"))
请注意,如果您使用 Mac,则需要quartz()
而不是windows()
. 这是情节: