personnaliser les étiquettes ggplot2 axis avec différentes couleurs
j'ai un graphique à barres de base que j'ai créé à partir de ggplot2. La variable y contient des valeurs positives et négatives et environ la moitié du vecteur des valeurs est négative. J'aimerais personnaliser les étiquettes des axes de sorte que lorsque la valeur y du facteur X correspondant est négative, son étiquette soit rouge. Voici un exemple reproductible:
#Create data
x <- c("a","b","c","d","e","f")
y <- c("10", "9","-10","11","-3","-15")
data <- data.frame(x, y)
data$y <- as.numeric(as.character(data$y))
data$category <- ifelse(as.numeric(data$y)<0, 0, 1)
data$category <- as.factor(data$category)
#Graph
library(cowplot) #theme
library(ggplot2)
ggplot(data, aes(x=x, y=y)) +
geom_bar(stat = "identity", aes(fill=category)) +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
theme(axis.text.x = element_text(colour = "black"))
j'ai besoin d'un moyen de changer les couleurs d'étiquettes de "c", "e" et "f" pour la couleur de mon choisir. J'ai essayé le basculement!--1-- > mais cela a produit une erreur. Merci à l'avance.
21
demandé sur
Claus Wilke
2016-08-10 03:07:33
1 réponses
Vous pouvez fournir un vecteur de couleurs à l' axis.text.x
option de theme()
:
a <- ifelse(data$category == 0, "red", "blue")
ggplot(data, aes(x = x, y = y)) +
geom_bar(stat = "identity", aes(fill = category)) +
theme(axis.text.x = element_text(angle = 45, hjust = 1, colour = a))
31
répondu
Sumedh
2018-03-23 13:58:52