2015-05-12 3 views
1

Я пытаюсь нарисовать geom_line на гистограмме, мои бары заполняются к году. Мой код:Гистограмма и geom_line в ggplot

library(ggplot2) 
library(plyr) 
library(reshape) 

DF <- data.frame(DECL.INDICATORS=c("Finland", "Finland", "Germany" ,"Germany","Italy","Italy"), 
       Year=c(2009,2010,2009,2010,2009,2010), 
       EXPVAL=c(2136410,1462620,371845300,402397520,357341970,357341970), 
       IMPVAL=c(-33668520,-37837140,-283300110,-306157870,-103628920,-105191850)) 


net <- ddply(DF, .(Year,DECL.INDICATORS), summarise, 
       net = sum(EXPVAL + IMPVAL)) 

DF.m <- melt(DF, id.vars = c("Year", "DECL.INDICATORS")) 

ggplot(DF.m,aes(x=DECL.INDICATORS,y=value, fill=factor(Year)))+ 
    geom_bar(stat="identity",position="dodge",colour="darkgreen") 

last_plot() + geom_line(data = net, aes(DECL.INDICATORS, net,group = 1), size = 1) + geom_hline(yintercept = 0,colour = "grey90") 

Проблема Я пытаюсь решить, чтобы нарисовать три линии (чистый экспорт из net) для каждой страны Финляндия, Германия, Италия.

С моей последней строке кода я получаю только три точки, которые связаны с линиями

+1

Вы хотите, чтобы строки отображали чистый экспорт с течением времени для каждой страны? Поскольку ось x в настоящее время является страной, это кажется немного неинтуитивным. – seaotternerd

+0

@seaotternerd, Да, но почему неинтуитивные данные происхождения состоят из 5 стран и 5 лет. И я думаю, что это будет представлять динамику каждой страны с течением времени. Мне не нужно сравнивать страны, я бы хотел показать динамику в каждой стране –

ответ

2

Вы должны использовать вместо граней. Таким образом, очевидно, что вы сравниваете только одну страну, а не между странами.

ggplot(DF.m, aes(x = factor(Year), y = value, fill = factor(Year))) + 
    geom_bar(stat = "identity", position = "dodge", colour="darkgreen") + 
    facet_grid(~DECL.INDICATORS) + 
    geom_line(data = net, aes(y = net, group = 1))