我有一个像这样的矩阵:
my.matrix:
A B C D E F G H
[1,] 12.1 8.10 7.79 11.40 10.30 15.10 9.88 13.90
[2,] 0.0 5.45 0.00 0.00 0.00 0.00 0.00 0.00
[3,] 0.0 0.00 5.42 0.00 0.00 0.00 0.00 0.00
[4,] 0.0 0.00 0.00 6.55 0.00 0.00 0.00 0.00
[5,] 0.0 0.00 0.00 0.00 4.68 0.00 0.00 0.00
[6,] 0.0 0.00 0.00 0.00 0.00 4.55 0.00 0.00
[7,] 0.0 0.00 0.00 0.00 0.00 0.00 4.32 0.00
[8,] 0.0 0.00 0.00 0.00 0.00 0.00 0.00 3.94
我已经制作了一个条形图:
barplot((my.matrix), beside=F, axis.lty=1, xpd=T,
ylim= c(0,30),xlim=c(0,11), horiz=F,yaxt='n',
axisnames=F,
col=c("black","darkolivegreen1","steelblue2","hotpink3","lightpink","gold","darkslategray1","peachpuff"))
这是情节:
所以,我想要的是将第二列中各列的颜色交换到最后一列。
例如,在第2列上,您可以看到黑色顶部的绿色; 但是我希望黑色和绿色相同,而其他列则相同,而我保持矩阵的顺序相同。
以下是我在前三栏中使用photoshop着色的示例:
我试图反转或转置矩阵,但它不起作用,我有点卡在这一部分。
如果你能解决这个问题我真的很感激!
最佳,
答案 0 :(得分:1)
你可以做到
barplot(my.matrix[nrow(my.matrix):1, ], beside=F, axis.lty=1, xpd=T,
ylim= c(0,30),xlim=c(0,11), horiz=F,yaxt='n',
axisnames=F,
col=c("peachpuff", "darkslategray1", "gold", "lightpink", "hotpink3",
"steelblue2", "darkolivegreen1", "black"))
或者,关于你的编辑:
m <- my.matrix
diag(m) <- my.matrix[1, ]
m[1, ] <- diag(my.matrix)
barplot(m[nrow(m):1, ], beside=F, axis.lty=1, xpd=T,
ylim= c(0,30),xlim=c(0,11), horiz=F,yaxt='n',
axisnames=F,
col=c("peachpuff", "darkslategray1", "gold", "lightpink", "hotpink3",
"steelblue2", "darkolivegreen1", "black"))
数据:强>
my.matrix <- read.table(header=T, text=" A B C D E F G H
[1,] 12.1 8.10 7.79 11.40 10.30 15.10 9.88 13.90
[2,] 0.0 5.45 0.00 0.00 0.00 0.00 0.00 0.00
[3,] 0.0 0.00 5.42 0.00 0.00 0.00 0.00 0.00
[4,] 0.0 0.00 0.00 6.55 0.00 0.00 0.00 0.00
[5,] 0.0 0.00 0.00 0.00 4.68 0.00 0.00 0.00
[6,] 0.0 0.00 0.00 0.00 0.00 4.55 0.00 0.00
[7,] 0.0 0.00 0.00 0.00 0.00 0.00 4.32 0.00
[8,] 0.0 0.00 0.00 0.00 0.00 0.00 0.00 3.94")
my.matrix <- as.matrix(my.matrix)