我已经搜索了互联网,因为我无法为我的ggplot2添加一个图例。
g.2plot1<-ggplot(input_csv,aes(x=R_OD_MONTH,y=DAMWAMT))+
geom_line(colour = "black")+
geom_line(aes(x=R_OD_MONTH,y = SCALED_PERCENT_MW), colour = "blue") +
scale_colour_manual(name="Legend", values = c("black", "blue")) +
scale_linetype_manual(name="Legend", values = c("dashed", "dotted"))
g.2plot1
当我这样做时,我什么也没得到,控制台没有错误,情节也没有传说。有人请告诉我我错了什么?
dput(head(input_csv))
structure(list(OD_MONTH = c("12/1/2010", "1/1/2011", "2/1/2011",
"3/1/2011", "4/1/2011", "5/1/2011"), DAMWAMT = c(219869.89, 214323.24,
193976.03, 249174.62, 213529.32, 226318.98), NB_MADE_WHOLE = c(39L,
37L, 26L, 45L, 74L, 64L), NB_CONSID_MW = c(818L, 871L, 874L,
831L, 1060L, 1418L), PERCENT_MW = c(0.0404, 0.048, 0.0371, 0.0616,
0.0604, 0.0525), SCALED_PERCENT_MW = c(151898.635570388, 183223.057973301,
138297.241632282, 239277.287536408, 234331.326104369, 201770.413343447
), R_OD_MONTH = structure(c(14944, 14975, 15006, 15034, 15065,
15095), class = "Date")), .Names = c("OD_MONTH", "DAMWAMT", "NB_MADE_WHOLE",
"NB_CONSID_MW", "PERCENT_MW", "SCALED_PERCENT_MW", "R_OD_MONTH"
), row.names = c(NA, 6L), class = "data.frame")
答案 0 :(得分:2)
传说是美学的。由于colour
在您的案例中不是美学,因此没有传说。诀窍是将数据从宽格式(每种类型的数据都有自己的列)转换为长格式(其中有一列表示数据类型,一列表示相应的值)。这样做如下:
library(reshape2)
plot.data <- melt(input_csv,
id="R_OD_MONTH",measure=c("DAMWAMT","SCALED_PERCENT_MW"))
melt
以长格式返回数据框,其中列指示名为variable
的数据类型,列为value
。
现在你可以让ggplot通过在颜色上映射列variable
来选择颜色:
ggplot(plot.data,aes(x=R_OD_MONTH,y=value,colour=variable)) + geom_line() +
labs(title="My plot",x="x-axis",y="y-axis",colour="colours") +
scale_colour_discrete(labels=c("this","that"))
最后两行显示,如何添加绘图标题,更改轴标签和图例标题(labs()
),以及更改图例中的标签(scale_colour_discrete
)。