我有一个10x10矩阵,我想以下列方式绘制每一列(以线条的形式) 1.应该有一个y轴,它将覆盖所有矩阵列的比例 2.应该有单个x轴,10个点(=列数) 3.矩阵的第一列应绘制在x轴的点-1和点-2内,第2列的矩阵在点2和点-3之间,第三列在点-3和点-4之间绘制等...... 我已经看过帖子,但都是多个情节,不符合我的要求。你能帮我解决一下如何在R
中做到这一点答案 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")
答案 1 :(得分:2)
以下是使用matplot进行操作的方法。
matplot(y = myData,
,x = matrix(seq(prod(dim(myData)))/nrow(myData),
nrow=nrow(myData),byrow=F)
- 1/nrow(myData) + 1)
技巧是为x值构建正确的矩阵。