Ich weiß, dass mit scale_x_date(date_labels="%b"...)
erstellt Tick-Etiketten mit den ersten drei Buchstaben in jedem Monat. Gibt es eine Möglichkeit, den ersten Buchstaben eines jeden Monats einfach einzufügen? Anstatt "Jan Feb March..."
wären die Labels "J F M..."
.Erstellen ggplot2 x-Achse Monat Etiketten mit nur ersten Buchstaben jedes Monats
Hier ist ein Beispiel: Die Monatsetiketten überschneiden sich, also hoffte ich, die Etiketten auf nur den ersten Buchstaben ändern zu können.
library(lubridate)
library(ggplot2)
set.seed(2)
df = data.frame(Date=seq(as.Date("2010-01-01"),as.Date("2015-12-31p
"), by="1 day"))
df$value = cumsum(rnorm(nrow(df)))
p = ggplot(df, aes(Date, value)) +
geom_vline(xintercept=as.numeric(df$Date[yday(df$Date)==1]), colour="grey60") +
geom_line() +
scale_x_continuous(labels = year_labels <- rep(c('J','F','M','A','M','J','J','A','S','O','N','D'),5)) +
theme_bw() +
theme(panel.grid.minor.x = element_blank()) +
labs(x="")
p
Ich habe versucht, die Linie scale_x_date(date_labels="%b", date_breaks="month", expand=c(0,0))
-scale_x_continuous(labels = year_labels <- rep(c('J','F','M','A','M','J','J','A','S','O','N','D'),5))
aber die
unten Fehler erzeugt ändernFehler bei as.Date.numeric (Wert): ‚Herkunft 'muss geliefert werden
können Sie bitte ein reproduzierbares Beispiel liefern –
Ihr Beispiel ist nicht reproduzierbar –
Ich überspringe einfach die Zeile 'geom_vline (xintercept = as.numeric (df $ Datum [yday (df $ Date) == 1]), color =" grey60 ")' was ich nur als Teil der * Dekoration * betrachte und es hat gut funktioniert – Marco