Rapide aider à la création d'un graphique à barres empilées (ggplot2)
J'ai les données suivantes cadre:
> DF
Year Metric MWh
2003 Demand 498343
2004 Demand 1250904
2005 Demand 1665176
2006 Demand 2317643
2007 Demand 2455311
2008 Demand 3557987
2009 Demand 4268125
2010 Demand 5403704
2011 Demand 6596158
2012 Demand 7814387
2013 Demand 9008863
2014 Demand 10291085
2015 Demand 11796549
2003 Actual 159677
2004 Actual 192748
2005 Actual 248844
2006 Actual 372661
2007 Actual 705656
2008 Actual 838721
2009 Actual 1188242
2010 Actual 1708979
2011 Actual 0
2012 Actual 0
2013 Actual 0
2014 Actual 0
2015 Actual 0
2003 High 0
2004 High 0
2005 High 0
2006 High 0
2007 High 0
2008 High 0
2009 High 0
2010 High 0
2011 High 3631730
2012 High 5729024
2013 High 6741785
2014 High 9342798
2015 High 11094798
2003 Low 0
2004 Low 0
2005 Low 0
2006 Low 0
2007 Low 0
2008 Low 0
2009 Low 0
2010 Low 0
2011 Low 1637220
2012 Low 1850615
2013 Low 2064011
2014 Low 2277406
2015 Low 2490801
Je veux créer un très simple graphique à barres empilées avec:
-- axe des x: An
-- y-axe: MWh
-- 1 pile avec la Demande, en Haut, en Bas, et la réalité ("Métriques"), dans cet ordre, empilés les uns SUR les autres (par opposition à bord haut). Jusqu'à présent, je n'ai réussi à comprendre comment le faire avec les valeurs empilées les unes SUR les autres:
DF$'Metric <- factor(DF$'Metric',levels=c("Demand","High","Low","Actual"))
qplot(x=Year,data=DF,geom="bar",weight=MWh,fill=Metric)
#OR
ggplot(DF,aes(x=factor(Year),y=MWh,fill=factor(Metric))) + geom_bar(position="stack")
Essentiellement, ce que je suis à la recherche d'une barre unique par année où la "Demande" de la valeur est la plus élevée, et les plus faibles valeurs (dans l'ordre ci-dessus) sont empilées les unes sur. Je crois que je dois utiliser un position="fill"
quelque part, mais je ne sais pas où le mettre. Fondamentalement, ce que j'essaie de montrer, c'est que la Demande sera en constante augmentation, alors que l'Offre (Réelles projetées Faible croissance vs projeté à Forte croissance) a été incapable de répondre dans un très simple, compact graphique. Si ce n'est pas possible, il serait peut-être préférable de simplement les groupe côté-à-côte?
Toute aide est très appréciée!! Merci!!
- Je n'ai pas le temps de vérifier, mais vous pourriez être à la recherche pour
position="identity"
. - Merci beaucoup!!! C'est exactement ce que je cherchais!! Cheers!! ps, comment puis-je marquer votre réponse avec la coche?
- Vous ne pouvez pas accepter un commentaire. Je l'ai écrit comme une réponse.
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr de ce que vous voulez vraiment de l'intrigue, mais à partir de la
position="fill"
j'ai l'impression que vous voulez tracer les proportions relatives de Métrique par an. Cela peut être fait facilement par la suite.Chargement de données:
Et tracer les barres empilées avec la même hauteur (avec les pourcentages):
Je pourrais mal compris ce que vous voulez tracer, et le traçage de deux distinctes graphique dans la même image également possible de préciser la grille de fenêtres. Je recommande à la recherche à gridextra paquet, en particulier pour les
arrange
.position="identity"
ne pas déplacer les barres à tous (par opposition à la valeur par défaut d'empilement), de sorte qu'ils seront superposées. Vous devez faire attention à l'ordre des niveaux de facteur de bien, parce que de cette façon que les bars peuvent cacher les uns derrière les autres.