融化,而不是R中的.data.frame或rbind(基本ggplot)

时间:2011-05-21 03:15:54

标签: r ggplot2

我有几个等长的数字向量,比如

alpha <- c(1, 2, 3, 4)
beta <- c(5, 6, 7, 8)
gamma <- c(9, 10, 11, 12)

我希望将它们放入数据框或带有标记为alpha,beta和gamma的列的内容中。像

alpha | beta | gamma
1 | 5 | 9
2 | 6 | 10
3 | 7 | 11
4 | 8 | 12

哪个qplot应该能够通过colour = labels阅读并分开。 cbindrbind会生成qplot无法读取的矩阵。并且c排列了alpha beta和gamma,而没有将它们标记为单独的。

diamonds数据集显示了qplot(carat, price, data = diamonds, colour = color)后的内容,但我想将我的共享维度数据绘制为x=1:4之类的索引。

常规R我会plot(alpha); points(beta); points(gamma)

很抱歉提出这样一个基本问题。

1 个答案:

答案 0 :(得分:3)

如果你想要一个data.frame,那么data.frame就会这样做:

> data.frame(alpha, beta, gamma)
  alpha beta gamma
1     1    5     9
2     2    6    10
3     3    7    11
4     4    8    12

这可以传递给qplotggplot

对于qplot,您无需创建data.frame。只需调用变量即可:

qplot(alpha, beta, colour=gamma)

评论后更新。

我仍然不确定需要什么,但这个例子可能有所帮助:

> d <- data.frame(x=1:4, alpha, beta, gamma)
> d
  x alpha beta gamma
1 1     1    5     9
2 2     2    6    10
3 3     3    7    11
4 4     4    8    12

> d2 <- melt(d, id="x")
> d2
   x variable value
1  1    alpha     1
2  2    alpha     2
... snip ...
11 3    gamma    11
12 4    gamma    12

> qplot(d2$x, d2$value, colour=d2$variable, geom="line")

# same as

> ggplot(d2, aes(x, value, colour=variable)) + geom_line()