从ggplot图例中删除单个标签

时间:2015-12-02 12:10:59

标签: r plot ggplot2 legend

示例代码:

library(ggplot2)
library(RcppRoll)
library(reshape2)
test_data2=data.frame(dates2015 <- seq(as.Date("2014-01-01"), as.Date("2014-12-31"), by="days"), runif(365,0,1), runif(365,1,2))
colnames(test_data2)=c("Date", "var1", "var2")

var1roll=roll_mean(test_data2$var1, 21)
var2roll=roll_mean(test_data2$var2, 21)
var1roll=c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,var1roll,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA)
var2roll=c(NA,NA,NA,NA,NA,NA,NA,NA,NA,NA,var2roll,NA,NA,NA,NA,NA,NA,NA,NA,NA,NA)

test_data3=data.frame(test_data2, var1roll, var2roll)

test_data_long3 <- melt(test_data3, id="Date")
colnames(test_data_long3)=c("Date", "Method", "value")

group.colors <- c("#F8766D","#00BFC4","black", "black")
ggplot(data=test_data_long3,aes(x=Date, y=value, colour=Method)) + geom_line()+
  scale_colour_manual(values=group.colors)

在绘制的图例中,它包含4个变量,表示绘制的4行。我想删除最终的标签,以便我在传奇中留下3个项目,分别是粉色,蓝色和单个黑色线条。黑线可以称为“平均值”。并将参考情节中的两条线。目前它区分了两条平均线,实际上,我不希望这种区别。

由于

1 个答案:

答案 0 :(得分:2)

这就是我接近它的方式 - 而不是将原始数据和平均数据放在一个data.frame中,我将它们分成两部分。

writer.CloseStream = false;

然后您可以为每个添加test_data_long3_raw <- melt(test_data3[,1:3], id="Date") test_data_long3_mean <- melt(test_data3[,c(1,4:5)], id="Date") 。在geom_line内使用colour = "mean"会为您提供图例条目,即使颜色未映射到变量。

aes()

enter image description here