在R中的单个图中单独绘制矩阵的每列

时间:2015-01-19 18:17:10

标签: r plot

enter image description here我有一个10x10矩阵,我想以下列方式绘制每一列(以线条的形式) 1.应该有一个y轴,它将覆盖所有矩阵列的比例 2.应该有单个x轴,10个点(=列数) 3.矩阵的第一列应绘制在x轴的点-1和点-2内,第2列的矩阵在点2和点-3之间,第三列在点-3和点-4之间绘制等...... 我已经看过帖子,但都是多个情节,不符合我的要求。你能帮我解决一下如何在R

中做到这一点

2 个答案:

答案 0 :(得分:3)

您可以将数据从宽格式转换为长格式,然后使用标准绘图实用程序(如ggplot)对数据进行适当分组并对其进行定位:

# Build a sample matrix, dat
set.seed(144)
dat <- matrix(rnorm(100), nrow=10)

# Build a data frame, to.plot, where each element represents one value in the matrix
to.plot <- expand.grid(row=factor(seq(nrow(dat))), col=factor(seq(ncol(dat))))
to.plot$dat <- dat[cbind(to.plot$row, to.plot$col)]
to.plot$col <- as.factor(to.plot$col)

# Plot
library(ggplot2)
ggplot(to.plot, aes(x=as.numeric(col)+(row-1)/max(row), y=dat, group=col, col=col))
 + geom_line() + scale_x_continuous(breaks=1:10) + xlab("Column")

enter image description here

答案 1 :(得分:2)

以下是使用matplot进行操作的方法。

matplot(y = myData,
       ,x = matrix(seq(prod(dim(myData)))/nrow(myData),
                   nrow=nrow(myData),byrow=F)
             - 1/nrow(myData) + 1)

技巧是为x值构建正确的矩阵。