Я не уверен, что вы действительно хотели бы построить, но из position="fill"
У меня сложилось впечатление, что вы хотите построить график относительных пропорций Метрика в год.Это можно легко сделать с помощью следующих действий:
Загрузка данных:
DF <- dput(DF)
structure(list(Year = c(2003L, 2004L, 2005L, 2006L, 2007L, 2008L,
2009L, 2010L, 2011L, 2012L, 2013L, 2014L, 2015L, 2003L, 2004L,
2005L, 2006L, 2007L, 2008L, 2009L, 2010L, 2011L, 2012L, 2013L,
2014L, 2015L, 2003L, 2004L, 2005L, 2006L, 2007L, 2008L, 2009L,
2010L, 2011L, 2012L, 2013L, 2014L, 2015L, 2003L, 2004L, 2005L,
2006L, 2007L, 2008L, 2009L, 2010L, 2011L, 2012L, 2013L, 2014L,
2015L), Metric = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L,
4L, 4L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("Demand",
"High", "Low", "Actual"), class = "factor"), MWh = c(498343L,
1250904L, 1665176L, 2317643L, 2455311L, 3557987L, 4268125L, 5403704L,
6596158L, 7814387L, 9008863L, 10291085L, 11796549L, 159677L,
192748L, 248844L, 372661L, 705656L, 838721L, 1188242L, 1708979L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 3631730L,
5729024L, 6741785L, 9342798L, 11094798L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 1637220L, 1850615L, 2064011L, 2277406L, 2490801L)), .Names = c("Year",
"Metric", "MWh"), row.names = c(NA, -52L), class = "data.frame")
и построение столбцов с одинаковой высотой (в процентах):
ggplot(DF,aes(x=factor(Year),y=MWh,fill=factor(Metric))) +
geom_bar(position="fill")
Я мог бы неправильно понять, что вы хотите построить, и возможно также построить два разных графика на одном и том же изображении с указанием видовых экранов сетки.Я рекомендую посмотреть на пакет gridextra , особенно для arrange
.