【发布时间】:2014-02-24 17:24:38
【问题描述】:
我有一个包含 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 个单独的轴上绘制 3 个系列(colA、colB、colC)
我想在 1 个轴上绘制 colA 和 colB,并在它下面有一个单独的轴,只包含 colC
知道如何做到这一点吗?谢谢!
【问题讨论】:
-
我认为更简单的方法是使用 grid.arrange 而不是 faceting。
p1 <- ggplot(subset(df2, variable==c(colA,colB))) + geom_line(aes(x=x,y=value, color=variable))和p2 <- ggplot(subset(df2, variable==c(colC)) + geom_line(aes(x=x,y=value,color=variable))。之后library(gridExtra)和grid.arrange(p1,p2)。 -
我仍然很难让它工作......也许是因为我在原始数据框中包含了索引?说我要做 df
-
我将数据拆分为 2 个不同的数据框,并使用 grid.arrange 将它们拼接在一起,效果很好,但我仍然希望有一个更优雅的解决方案。
-
您能否将
dput(df)包含在内,以便我发布示例。
标签: r ggplot2 dataframe reshape2