在geom_area图中编辑图例的涂层

时间:2013-09-16 10:12:03

标签: r ggplot2

如何在geom_area中为图例添加涂层?我尝试了一些东西,但它不起作用。

    time<-as.POSIXlt(c("2013-07-01","2013-07-01","2013-07-02","2013-07-02"),origin = "1960-01-01",tz="GMT")
data<-data.frame(xAxis=time,yAxis=c(3,2,1,2),split=factor(c(1,2,1,2)))
p<-ggplot(data,aes(x=xAxis,y=yAxis,fill=split))
p<-p + geom_area(stat="identity")
#p <- p + scale_color_discrete(name ="Name", labels=LETTERS[1:2])
p <- p + xlab("x-Axis") + ylab("y-Axis")
p

1 个答案:

答案 0 :(得分:2)

我认为您需要scale更好地匹配aes

中的ggplot
ggplot(data, aes(x = xAxis, y = yAxis, fill = split)) +
  geom_area(stat = "identity") +
  scale_fill_discrete(name = "Name", labels = LETTERS[1:2])

enter image description here

如果您要反复使用'split'并且总是希望拥有相同的标签,您可以考虑在开始绘图之前重新标记因子(或者每当因素的信息标签相关时,例如建模)。

data$split2 <- factor(data$split, labels = LETTERS[1:2])

# no need for the 'labels' argument in scale
ggplot(data, aes(x = xAxis, y = yAxis, fill = split2)) +
  geom_area(stat = "identity") +
  scale_fill_discrete(name = "Name")