Beim Versuch, eine neue Zeile mit einem vorhandenen ggplot zu überlagern, wird der folgende Fehler angezeigt:
Error: ggplot2 doesn't know how to deal with data of class uneval
Der erste Teil meines Codes funktioniert gut. Unten sehen Sie ein Bild der "aktuellen" stündlichen Winderzeugungsdaten eines Strommarktes im Mittleren Westen der USA.
Jetzt möchte ich die Beobachtungen der letzten zwei Tage in Rot überlagern. Es sollte einfach sein, aber ich kann nicht herausfinden, warum ich einen Fehler erhalte.
Jede Unterstützung wäre sehr dankbar.
Unten ist ein reproduzierbares Beispiel:
# Read in Wind data
fname <- "https://www.midwestiso.org/Library/Repository/Market%20Reports/20130510_hwd_HIST.csv"
df <- read.csv(fname, header=TRUE, sep="," , skip=7)
df <- df[1:(length(df$MKTHOUR)-5),]
# format variables
df$MWh <- as.numeric(df$MWh)
df$Datetime <- strptime(df$MKTHOUR, "%m/%d/%y %I:%M %p")
# Create some variables
df$Date <- as.Date(df$Datetime)
df$HrEnd <- df$Datetime$hour+1
# Subset recent and last data
last.obs <- range(df$Date)[2]
df.recent <- subset(df, Date %in% seq(last.obs-30, last.obs-2, by=1))
df.last <- subset(df, Date %in% seq(last.obs-2, last.obs, by=1))
# plot recent in Grey
p <- ggplot(df.recent, aes(HrEnd, MWh, group=factor(Date))) +
geom_line(color="grey") +
scale_y_continuous(labels = comma) +
scale_x_continuous(breaks = seq(1,24,1)) +
labs(y="MWh") +
labs(x="Hour Ending") +
labs(title="Hourly Wind Generation")
p
# plot last two days in Red
p <- p + geom_line(df.last, aes(HrEnd, MWh, group=factor(Date)), color="red")
p
Eine andere Ursache ist das versehentliche Einsetzen des
data=...
Innerenaes(...)
anstelle des Äußeren:Dies kann insbesondere dann der Fall sein, wenn Sie einen Prototyp für Ihren Plot-Befehl erstellen
qplot()
, für den kein expliziter Befehl verwendet wirdaes()
, und ihn dann bearbeiten / kopieren und in einen Befehl einfügenggplot()
Es ist schade, dass die Fehlermeldung von ggplot nicht das Argument 'data' fehlt! anstelle dieses kryptischen Unsinns, denn das ist es, was diese Nachricht oft bedeutet.
quelle
Dies kann auch auftreten, wenn Sie auf eine Variable im data.frame verweisen, die nicht vorhanden ist. Zum Beispiel habe ich kürzlich vergessen, ddply anzuweisen, anhand einer meiner Variablen, die ich in geom_line verwendet habe, um die Linienfarbe anzugeben, zusammenzufassen. Dann wusste ggplot nicht, wo sich die Variable befindet, die ich nicht in der Übersichtstabelle erstellt hatte, und ich habe diesen Fehler erhalten.
quelle