définir la plage de dates dans ggplot
ma trame de données est z:
> dput(z)
structure(list(Month = structure(c(14975, 15095, 15156, 15187,
15248), class = "Date"), Value = c(1, 1, 1, 6, 1)), .Names = c("Month",
"Value"), row.names = c(NA, 5L), class = "data.frame")
ggplot(z, aes(Month, Value)) +
geom_bar(fill="orange",size=.3, stat="identity", position="identity") +
geom_smooth(data=z,aes(Month,Value,group=1), method="lm", size=2, color="navyblue") +
scale_x_date(breaks = "1 month", labels=date_format("%b-%Y"))
Cela fonctionne ok mais j'aime vraiment ma plage de données entre le 1/1/2011 et du 1/1/2013. Mon exemple en date est 1/12011 à 10/1/2011. Est-il un moyen facile de forcer la plage de dates du 1/1/2011 au 1/1/2013 dans ggplot?
OriginalL'auteur user1471980 | 2013-01-04
Vous devez vous connecter pour publier un commentaire.
De la documentation à
?scale_x_date
mentionne qu'il accepte tous les "typique" échelle continue des arguments, y comprislimits
:Réponse utile, mais le manque de
library(scales)
appel généréError in structure(list(call = match.call(), aesthetics = aesthetics, : could not find function "date_format"
, qui m'a fait me gratter la tête pour un couple de minutes!Désolé, les OP du code ne serait pas exécuter sans
library(scales)
; ce n'était pas lelimits
peu que l'exige.Ce code ne fonctionne pas pour moi. Peut-être que la grosse mise à jour de ggplot2 qu'elle a éclaté.
Error: Invalid input: date_trans works with objects of class Date only
.Je ne peux pas reproduire cette erreur. J'ai été faire une erreur due à la vétusté nom d'argument (
breaks
vsdate_breaks
) mais c'était une autre erreur. Le code fonctionne très bien pour moi maintenant.OriginalL'auteur joran
Ce serait une courtoisie de SORTE que les utilisateurs de noter que vous devez en outre à "ggplot2' également chargé de la
scales
paquet. Il y a unggplot2::xlim
de la fonction, de sorte que cela fonctionne:Mise à jour: je Viens de downvote pour une raison inexpliquée. Le code dans la question d'origine ne fonctionne plus, mais si vous remplacez le scale_x_date(.) appel avec juste la xlim() appel ci-dessus, il n'y a pas d'erreur.
Error: Invalid input: date_trans works with objects of class Date only
.Le code fonctionne toujours dans 3.4.1 donc le commentaire de l'année dernière n'a pas de sens. J'ai été clairement donner une Date-classés de la valeur à
xlim
. Probablement l'incapacité à reconnaître un facteur variable, qui ressemblait à une "Date" dans la sortie imprimée.OriginalL'auteur 42-
Voici une solution à l'aide de ggplot 3.1 qui requiert le moins de modifications dans le code d'origine:
la
theme()
à la fin est facultative, mais permet la mise en forme plus facile à lire si vous souhaitez utiliser votre original"%b-%Y"
chaîne de mise en forme.OriginalL'auteur Richard Sprague