如何使用ggplot2中的多列绘制data.frame?

时间:2016-07-12 08:25:01

标签: r plot ggplot2 reshape melt

我的数据框大致如下:

aa <- c(1:7)
bb <- c(11:15)
df1 <- expand.grid(aa, bb)
val1 <- rnorm(nrow(df1))
val2 <- runif(nrow(df1))

df <- data.frame(df1, val1, val2)
names(df) <- c("aa", "bb", "val1", "val2")

我想做什么:对于固定的aa(比如1),对于bb的所有值,有一个val1和val2的时间序列。现在,我想绘制这些(对于aa = 1,每个val1和val2为5)时间序列。 (总共7 * 5 * 2时间序列)

如何使用ggplot2执行此操作?

我尝试了以下内容:

require(ggplot2)
require(reshape2)

df_pl <- melt(df,  id.vars = c("aa", "bb"), variable.name = 'val')

ggplot(df_pl, aes(aa, value)) + geom_point(aes(colour = val))
ggplot(df_pl, aes(bb, value)) + geom_point(aes(colour = val))

但是这只产生val1和val2的曲线作为aa和bb的函数,而不是每个bb值的val1 / val2系列。我可能错误地使用了熔化功能

1 个答案:

答案 0 :(得分:2)

我不确定我是否理解正确,这是你想要实现的目标,但也许可以尝试:

ggplot(df_pl, aes(aa, value)) + geom_point(aes(colour = val)) + facet_wrap(~bb)
ggplot(df_pl, aes(bb, value)) + geom_point(aes(colour = val)) + facet_wrap(~aa)