2016-06-22 11 views
0

Ich habe eine Matrix wie folgt aus:Wie ändert man die Farbe für ein gestapeltes Balkendiagramm in R?

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 

und ich habe eine BarPlot generiert:

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")) 

und hier ist die Handlung:

enter image description here

Also, was ich Wollen Sie die Farben der einzelnen Spalten von der zweiten Spalte auf die letzte Spalte tauschen.

Zum Beispiel auf der Spalte 2 können Sie grüne Farbe auf der Oberseite von Schwarz sehen; aber ich möchte schwarz über grün und das gleiche für den Rest der Spalten haben, während ich die Matrix in der gleichen Reihenfolge halte.

Hier ist das Beispiel, das ich mit Photoshop für die ersten drei Spalten gefärbt haben:

enter image description here

ich zu umkehren versucht oder die Matrix transponieren, aber es funktioniert nicht, und ich bin irgendwie stecken in dieser Teil.

Ich würde mich sehr freuen, wenn Sie mir mit diesem Problem helfen könnten!

Best,

Antwort

1

Sie

tun können
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")) 

enter image description here

Oder in Bezug auf Ihre edit:

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")) 

enter image description here


Daten:

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) 
+0

Leider ist dies nicht das, was ich suche; Ihr Ergebnis habe ich auch durch Umkehrung der Matrix. Ich habe meiner Frage ein neues Bild für die ersten drei Spalten hinzugefügt. Danke – user3576287

+0

Also, effektiv wollen Sie die Diagonale mit der ersten Reihe wechseln? Siehe meine Bearbeitung – lukeA

Verwandte Themen