ggplot图例栏和相同图表中的线

时间:2015-05-26 16:55:48

标签: r ggplot2 legend

我在同一张图表上绘制了一个条形图和折线图,我想知道是否有办法让ggplot的图例表明该条是一件事,而且该行是为了另一个。也就是说,不是确定他们填写的是什么,而是我知道该怎么做,而是要说出" line = tomatoes"," bar = potato"。

数据:

x <- c(0:10)
y1 <- c(0,.5,1,1.5,2,2.5,3,3.5,4,4.5,5)
y2 <- append(c(1:5),c(6,8,10,12,14,16))
mydata <- as.data.frame(cbind(x,y1,y2))

1 个答案:

答案 0 :(得分:3)

x=c(0:10)

见下面的代码。您需要为传奇展示美学映射。任何看过这个的人都可以在一个传奇上建议一种方法来摆脱两者之间那种丑陋的空间。

y1=c(0,.5,1,1.5,2,2.5,3,3.5,4,4.5,5)
y2=append(c(1:5),c(6,8,10,12,14,16))
mydata1=data.frame(x=x,line=y2,Type="Line")
mydata2=data.frame(x=x,bar=y1,Type="Bar")

ggplot(data=mydata1) + geom_line(aes(x=x,y=line,linetype=Type)) +
  geom_bar(data=mydata2,aes(x=x,y=bar,fill=Type),stat="identity") +
  scale_fill_manual(values=c("black","black")) +
  guides(fill = guide_legend(override.aes=list(fill=c("black")))) +
  labs(fill="", linetype="")