При попытке наложить новую строку на существующий ggplot я получаю следующую ошибку:
Error: ggplot2 doesn't know how to deal with data of class uneval
Первая часть моего кода работает нормально. Ниже приведено изображение "последних" почасовых данных о ветроэнергетике на рынке электроэнергии Среднего Запада США.
Теперь я хочу наложить наблюдения за последние два дня красным цветом. Это должно быть легко, но я не могу понять, почему я получаю сообщение об ошибке.
Будем очень благодарны любой помощи.
Ниже приведен воспроизводимый пример:
# 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
Другая причина - случайно поместить
data=...
внутрьaes(...)
вместо внешнего:В частности, это может произойти, когда вы прототипируете свою команду построения графика с помощью
qplot()
, которая не использует явныйaes()
, а затем редактируете / копируете и вставляете ее вggplot()
Жаль, что сообщение об ошибке ggplot не отсутствует аргумент «данные»! вместо этой загадочной чепухи, потому что это сообщение часто означает именно это.
источник
Это также может произойти, если вы обратитесь к несуществующей переменной в data.frame. Например, недавно я забыл сказать ddply, что нужно суммировать одну из моих переменных, которые я использовал в geom_line для определения цвета линии. Затем ggplot не знал, где найти переменную, которую я не создал в сводной таблице, и я получил эту ошибку.
источник