J'ai un simple geom_point
plot, dans lequel la variable x
est ordinale, prenant 5 valeurs (codées 1: 5).
Dans l'intrigue, je voudrais le remplacer par 5 étiquettes de texte correspondantes. Est-il possible de le faire dans ggplot?
Vous devriez pouvoir le faire avec scale_x_discrete
.
library(ggplot2)
df <- data.frame(x = 1:5, y = sample(1:10, 5, TRUE))
qplot(factor(x),y, data = df) +
scale_x_discrete(breaks = 1:5, labels=c("foo","bar","baz","phi","fum")) +
xlab(NULL)
scale_x_discrete
devrait le faire:
x <- sample(1:5, 20, T)
y <- rnorm(20) + x
df <- data.frame(x = ordered(x), y = y)
ggplot(df,aes(x,y)) + geom_point() +
scale_x_discrete(breaks = 1:5, labels = letters[1:5])
Voici un exemple reproductible qui, je pense, résume votre Q (?):
require(ggplot2)
dat <- data.frame(X = sample(1:5, 100, replace = TRUE),
Y = rnorm(100))
Les données dont vous disposez ne sont pas immédiatement claires, mais si vous voulez dire quelque chose comme ceci:
(p1 <- ggplot(dat, aes(x = X, y = Y)) + geom_point())
Ensuite, je pense que vous voulez un diagramme à bandes, qui peut être réalisé dans ggplot via un facteur
dat2 <- within(dat, X <- factor(X, labels = letters[1:5]))
(p2 <- ggplot(dat2, aes(x = X, y = Y)) + geom_point())
Si ce n'est pas ce que vous voulez dire, pouvez-vous modifier votre Q pour fournir un exemple?