ggplot2更改图例中的标签

时间:2014-10-17 21:42:38

标签: r ggplot2 label

我想更改图例中的标签。

 spi<-read.csv("spill.csv",as.is=TRUE)
 attach(spi)
 spi$date<-as.Date(spi$date)
 str(spi)
 data.frame:   3184 obs. of  3 variables:
 $ data1: chr  "oil to asset" "oil to asset" "oil to asset" "oil to asset" ...
 $ date : Date, format: "2007-01-10" "2007-01-11" ...
 $ sp   : num  7.7 7.95 7.54 7.61 7.67 ...

cont1 <- ggplot(spi,aes(x=date,y=sp,linetype=data1))+geom_line() +
            expand_limits(max(spi$sp), y=c(0,80)) + 
            labs(x = "", y = "") + 
            scale_y_continuous(breaks=seq(0,80,10)) +
            scale_linetype_manual(values = c("dashed","solid")) +  
            scale_x_date(breaks=datebreaks1, labels=date_format("%Y")) +
            ggtitle("Oil and Fianacial Market") +
            annotate("rect", xmin=as.Date("2008-01-02"), xmax=as.Date("2008-06-30"), 
                     ymin=-Inf, ymax=Inf, alpha=.1, fill="blue") +
            theme(legend.position="bottom") + labs(linetype='')  

然后我想把资产变成石油和石油变成资产。

我怎么能追求?

scale_fill_discrete(labels=c("oil to asset" ,"asset to oil"))

这不起作用。

请帮帮我。

1 个答案:

答案 0 :(得分:0)

这实际上与@aosmith建议的解决方案相同 - 向您的breaks添加右labels(不是scale_linetype_manual)。

scale_linetype_manual(values = c("dashed","solid"), breaks=c("oil to asset" ,"asset to oil"))

我还建议您通过spi$data1spi$data1 <- factor(spi$data1)作为一个因素。 ggplot从levels(some_factor_variable中选择因子排序。您可以通过更改因子级别排序来避免在每个图表上指定breaksHere是一个如何做到的例子。