ProblemDatumsformat für Untergruppe von Zecken auf der Zeitachse
Ich mag meine X-Achse (Zeit) zu formatieren, so dass die Wochenenden deutlich sichtbar sind. Ich möchte sowohl das Datum als auch den Wochentag anzeigen.
aktuelle Situation
ich dies tun mit (vollständige Code unten)
scale_x_date(breaks=myData$timestamp,
labels=paste(
substr(format(myData$timestamp, "%a"),1,1),
format(myData$timestamp, "%d"),
sep="\n")
)
die mich
01 Gewünscht Situation gibt
Ich hätte lieber eine Ein-Buchstaben-Abkürzung für die Wochentage, da es dort ein bisschen eng wurde .. Außerdem würde ich gerne die Sonntage (und Feiertage wirklich) in rot färben. Hier ist, was ich meine (mit GIMP). Beachten Sie, wie der erste Montag und am vergangenen Freitag unter Verwendung
scale_x_date(breaks = "1 day",
minor_breaks = "1 days",
labels = date_format("%a\n%d"),
name="")
jedoch hinzugefügt wurden, dann bekomme ich eine Drei-Buchstaben-Abkürzung des Wochentag, die ich in GIMP entfernt.
Hier ist der vollständige Code für dieses Beispiel.
library(ggplot2)
library(scales)
library(reshape2)
minimumTime <- as.Date("2014-07-01")
maximumTime <- as.Date("2014-07-31")
x <- seq(minimumTime,maximumTime, by="1 day")
y1 <- sin(as.numeric(x)/3)
y2 <- cos(as.numeric(x)/3)
myData <- data.frame(timestamp=x, y1=y1, y2=y2)
myData <- melt(myData, id.vars="timestamp")
rects <- data.frame(saturdays=myData[weekdays(myData$timestamp) == "Saturday","timestamp"]-0.5, sundays = myData[weekdays(myData$timestamp) == "Saturday","timestamp"]+1.5)
myPlot <- ggplot() +
geom_rect(data=rects, aes(xmin=saturdays, xmax=sundays,ymin=-Inf, ymax=Inf), alpha=0.1) +
geom_line(data=myData, aes(x=timestamp, y=value, colour=variable,size=1)) +
geom_point(data=myData, aes(x=timestamp, y=value, colour=variable,size=2)) +
scale_x_date(breaks=myData$timestamp, labels=paste(substr(format(myData$timestamp, "%a"),1,1),format(myData$timestamp, "%d"),sep="\n")) +
#scale_x_date(breaks = "1 day", minor_breaks = "1 days", labels = date_format("%a\n%d"), name="") +
scale_size_continuous(range = c(1.5,5), guide=FALSE)
So zusammenzufassen:
- Gibt es eine Möglichkeit, bestimmte Brüche in einer anderen Farbe zu färben?
- Gibt es eine Möglichkeit, die Etiketten manuell zu ändern und sie immer noch für den Montag und den Freitag am Anfang und das Ende in diesem Fall zu haben?
- Auch wenn es eine Möglichkeit, die Linien jedes Etiketts zentriert zu haben, die genial :)
Danke sein würde!
Hey, das ist sehr schön! Vielen Dank! Es beantwortet nicht die Farbfrage, aber ich mag es trotzdem! – bytesinflight
Schön geschriebene Antwort, saubere Lösung. Danke noch einmal! – bytesinflight
Dies ist eine sehr unterschätzte Antwort, eine wirklich gute :) Paldies – r0berts