无法在ggplot中自定义图例

Unable to customize legend in ggplot

我正在使用 ggplot(我下面的代码)绘制年度需求,但我无法为该图添加颜色图例。我的 data.frame 有 "Zone" 和 "TotalDemand"(只有 2 列),我有三个 data.frame 三年("sales12"、"sales13" 和 "sales14").

ggplot() + 
geom_point(data=sales12, aes(x=factor(Zone), y=TotalDemand/1000), 
           color='green',size=6, shape=17) +
geom_point(data=sales13, aes(x=factor(Zone), y=TotalDemand/1000), 
           color='red',size=6, shape=18)+
geom_point(data=sales14, aes(x=factor(Zone), y=TotalDemand/1000), 
           color='black',size=4, shape=19) + 
labs(y='Demand (in 1000s)',x='Zones') +
scale_colour_manual(name = 'the colour', 
                    values = c('green'='green', 'black'='black', 'red'='red'), 
                    labels = c('12','13','14'))

请帮我找出错误。

对于一个非常小的示例数据框 df,我将其融化以将其格式化为 ggplot

dput(df)
structure(list(Zone = structure(1:4, .Label = c("Alpha", "Baker", 
"Charlie", "Delta"), class = "factor"), TotalDemand = c(90L, 
180L, 57L, 159L), sales12 = c(25L, 40L, 13L, 50L), sales13 = c(30L, 
60L, 16L, 55L), sales14 = c(35L, 80L, 28L, 54L)), .Names = c("Zone", 
"TotalDemand", "sales12", "sales13", "sales14"), class = "data.frame", row.names = c(NA, 
-4L))

df.m <- melt(df, id.vars = "Zone", measure.vars = c("sales12", "sales13", "sales14"))

ggplot(df.m, aes(x=factor(Zone), y=value, color = variable )) + 
  geom_point(size=6, shape=17) +
  labs(y='Demand (in 1000s)',x='Zones') +
  scale_colour_manual(values = c('green', 'black', 'red'))

您可以调整点的大小、形状和颜色,添加标题等。例如,您的图例也可以放在底部。