En essayant de superposer une nouvelle ligne à un ggplot existant, j'obtiens l'erreur suivante:
Error: ggplot2 doesn't know how to deal with data of class uneval
La première partie de mon code fonctionne bien. Ci-dessous, une image des données horaires "récentes" de production éolienne d'un marché de l'énergie électrique du Midwest des États-Unis.
Maintenant, je veux superposer les deux derniers jours d'observations en rouge. Cela devrait être facile, mais je ne comprends pas pourquoi j'obtiens une erreur.
Toute assistance sera grandement appréciée.
Voici un exemple reproductible:
# 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
Une autre cause est de mettre accidentellement l'
data=...
intérieur auaes(...)
lieu de l'extérieur:En particulier, cela peut se produire lorsque vous prototypez votre commande plot avec
qplot()
, qui n'utilise pas un expliciteaes()
, puis que vous l'éditez / copiez et collez dans unggplot()
C'est dommage que le message d'erreur de ggplot ne soit pas l'argument 'data' manquant! au lieu de ce non-sens cryptique, car c'est ce que ce message signifie souvent.
la source
Cela peut également se produire si vous faites référence à une variable du data.frame qui n'existe pas. Par exemple, j'ai récemment oublié de dire à ddply de résumer par l'une de mes variables que j'ai utilisées dans geom_line pour spécifier la couleur de la ligne. Ensuite, ggplot ne savait pas où trouver la variable que je n'avais pas créée dans le tableau récapitulatif, et j'ai eu cette erreur.
la source