2017-10-02 9 views
1

Je veux inverser l'axe x deux fois. Maintenant, je suis tout simplement inverser la plage de l'axe x et mon résultat est 3, 2, 1, 0 au lieu de 0, 1, 2, 3.Inverser l'axe des x deux fois dans R

Mon code:

temp2 = table(mFT$Vorschlaege, mFT$Bewertung) 

barplot(temp2 , main="10 Vorschläge pro Methode", xlab="Bewertung", beside=TRUE, ylim = c(0,40), xlim= c(43,3), col = colours10) 
legend("top", legend = rownames(temp2), fill = colours10) 

see my barplot

Maintenant, je veux inverser les barres en 3, 2, 1 et 0. Le "Vorschlag 1" devrait être en premier lieu et "Vorschlag10" en dernier.

Comment est-ce que je peux faire ceci?

Répondre

0

En supposant mFT$Vorschlaege est un facteur que vous pouvez inverser l'ordre du facteur levels.Try:

mFT$Vorschlaege2 <- factor(mFT$Vorschlaege,levels = levels(mFT$Vorschlaege)[10:1]) 

Cela inverse l'ordre des niveaux de facteur. Si mFT$Vorschlaege n'est pas un facteur, vous devrez d'abord le transformer en facteur. J'ai renommé la variable mFT$Vorschlaege2 pour éviter d'écraser votre variable d'origine. Vous devrez donc répéter la commande table avec la nouvelle variable.

temp2 = table(mFT$Vorschlaege2, mFT$Bewertung) 
    barplot(temp2 , main="10 Vorschläge pro Methode", xlab="Bewertung", beside=TRUE, ylim = c(0,40), xlim= c(43,3), col = colours10) 
    legend("top", legend = rownames(temp2), fill = colours10) 

Sans un exemple reproductible je ne peux pas tester cette solution mais cela fonctionne avec mes propres données.

+0

c'est une excellente solution! Comment puis-je simplement inverser ma légende? –

+1

Je l'ai :) Avec la légende ("top", légende = rev (noms de la ville (temp2)), remplir = rev (couleurs10)) est le texte et les couleurs de la légende inversée –

0

Oui, le facteur est la clé ici. J'ai créé un graphique à barres avec ggplot2 en utilisant un ensemble de données de jouets:

library(ggplot2) 

### toy dataset 
Vorschlaege <- c("V1", "V3", "V2", "V5", "V4") 
Bewertung <- c(100, 20, 30, 40, 50) 
df <- data.frame(Vorschlaege, Bewertung) 

## define sorting order by factor as you want to have it in your bar chart: 
df$Vorschlaege <- factor(df$Vorschlaege, levels = c("V5", "V4", "V3", "V2", "V1")) 

ggplot(df, aes(df$Vorschlaege)) + 
    geom_bar(aes(weight = df$Bewertung)) + 
    labs(title = "Meine Vorschläge", 
     x = "Vorschlag", y = "Bewertung", 
     subtitle = "Zeitraum: x bis y", caption = "Quelle: Meine Forschung") + 
    theme_bw() ## white background theme 
+0

pour un graphique à barres groupées voir la réponse à celui-ci: https://stackoverflow.com/questions/18158461/grouped-bar-plot-in-ggplot – user1766682