Des pauses pour scale_x_date dans ggplot2 et R
Je suis traçage valeur~date de ggplot2 (dans R). J'ai le code suivant. Comme vous le voyez ggplot2 ajoute plus de pauses sur l'axe des x que j'ai dans mes données. Je veux juste avoir de la x-label à chaque fois que j'ai un point de données dans mon bloc de données. Comment puis-je la force de ggplot2 juste montrer les pauses seulement les valeurs de mon.dates? Il semble qu'il n'y a pas de "sauts" l'argument pour scale_x_date
require(ggplot2)
my.dates = as.Date(c("2011-07-22","2011-07-23",
"2011-07-24","2011-07-28","2011-07-29"))
my.vals = c(5,6,8,7,3)
my.data <- data.frame(date =my.dates, vals = my.vals)
plot(my.dates, my.vals)
p <- ggplot(data = my.data, aes(date,vals))+ geom_line(size = 1.5)
p <- p + scale_x_date(format="%m/%d", ' ')
p
Voir aussi scale_x_date(): "l'échelle de La date va tenter de choisir des valeurs par défaut raisonnables pour les graduations principales et secondaires. Remplacer avec date_breaks, date_labels, date_minor_breaks arguments."
OriginalL'auteur Mark | 2011-07-10
Vous devez vous connecter pour publier un commentaire.
Une approche pourrait être de traiter de l'axe x du numérique et de définir les pauses et les étiquettes de l'esthétique avec
scale_x_continuous()
.si la rupture entre 7/24 par 7/28 semble un peu étrange à mon avis. Cependant, je pense que c'est ce que vous voulez? Permettez-moi de savoir si j'ai mal interprété.
MODIFIER
Comme indiqué ci-dessus, je n'étais pas heureux avec la façon dont les pauses examiné ci-dessus, en particulier avec le gris de la grille à l'arrière-plan. Voici une façon de maintenir la grille rectangulaire et à seulement étiquette les points où nous avons des données. Vous pourriez faire tout cela dans le ggplot appel, mais je pense qu'il est plus facile de faire le traitement en dehors de ggplot. Tout d'abord, créer un vecteur contenant la séquence de chiffres correspondant à la date. Ensuite, nous allons mettre à jour les étiquettes appropriées et remplacer le NA entrées à
" "
pour éviter d'être représentés sur l'axe des x pour les entrées:Cela nous donne quelque chose qui ressemble à:
qui peut ensuite être transmise à l'échelle comme ceci:
scale_x_continuous(breaks = xscale$breaks, labels = xscale$labels)
theme_blank(), panneau de configuration.de la grille.mineur = theme_blank()) devrait faire l'affaire.
Jette le
Error: Discrete value supplied to continuous scale
dansggplot2 1.0.0
.fonctionne très bien pour moi. vous pourriez avoir besoin de charger
scales
paquet séparément. En général, les solutions sur internet a une durée de délai et de ce qui se passe de 3,5 ans à ce point; n'hésitez pas à modifier la réponse à la mettre à jour si vous êtes si incliné. Tout ce qui est apparemment cassé ne peut pas être que cassé.Je reçois la même erreur que @MYaseen208 et j'ai échelles chargé
OriginalL'auteur Chase