给定3列的数据帧,使用ggplot2绘制第一个2在1轴上,第3个在它下面的单独轴上

时间:2014-02-24 17:24:39

标签: r ggplot2 dataframe reshape2

我有一个包含4列的数据框:“x”“colA”“colB”“colC”

df <- data.frame(x, colA, colB, colC)
df2 <- melt(data=df, id.vars="x")

目前我正在做以下

ggplot(df2, aes(x=x, y=value, colour=variable)) + geom_line() + 
    facet_wrap( ~ variable, ncol=1, scales="free")

将3个系列(colA,colB,colC)绘制在3个单独的轴上

我想在1轴上绘制colA和colB,并在其下面有一个单独的轴,只包含colC

知道怎么做到这一点?谢谢!

1 个答案:

答案 0 :(得分:1)

尝试:

df2$is.colC <- df2$variable == "colC"
ggplot(df2, aes(x=x, y=value, colour=variable)) + geom_line() + 
  facet_wrap( ~ is.colC, ncol=1, scales="free")

我们只需添加一个新变量,突出显示该行是否为“colC”行,以及该行的方面。

enter image description here

以供参考的数据:

set.seed(1)
x <- 1:10
colA <- runif(10)
colC <- runif(10)
colB <- runif(10)
df <- data.frame(x, colA, colB, colC)
df2 <- melt(data=df, id.vars="x")