2016-02-08 53 views
0

我下面如何更改ggplot2中图例文本的大小?

enter image description here

使用数据和代码,这个情节我希望能够改变图例文本的大小(A,B,M1,M3)。我试过使用

legend.text=element_text(size=0.5) 

但它没有改变。任何建议如何减少legend.text的大小?

代码

library(xts) 
library(zoo) 
library(ggplot2) 
library(tidyr) 
cols <- c("A"="black", "B" = "black","M1"="red","M2"="blue", "M3" = "green") 
ggplot(df.trial1, aes(x=Date, y= A, color="A"))+ 
    geom_line(linetype=3, size=0.2)+ 
    geom_point(aes(x=Date, y=B, color="B"), shape = 16, size =1, alpha=0.5)+ 
    geom_point(aes(x=Date, y=Value, color=Method), size =1, alpha=0.5)+ 
    scale_colour_manual(name=" ", values=cols, 
        labels=c("A", "B", 'M1', "M2", "M3"))+ 
    scale_linetype_manual(values = c("dashed")) + 
    scale_x_date(breaks = date_breaks("1 month"), labels = date_format("%d-%b-%y"))+ 
    guides(color=guide_legend(override.aes=list(shape=c(NA,16, 16, 16, 16), 
              linetype=c(3,0, 0, 0, 0)), 
         direction = "vertical", title.position = "top", 
         label.position="right", label.hjust = 0, label.vjust = 0.5, 
         label.theme = element_text(angle = 0)))+ 
    labs(x=expression(Date), y=expression(Value))+ 
    theme(legend.text=element_text(size=0.5)) 

DATA

set.seed(123) 
date <- as.Date(seq(as.Date("2003-01-01"), as.Date("2003-05-31"), by = 1), format="%Y-%m-%d") 
a <- runif(151, 0.005, 2.3) 
df <- data.frame(date, a) 
rans<-sample(length(df$a), 30) 
df$a.rm <- df$a 
df[rans, 3]<-NA 
df <- subset(df, select=c(1,3,2)) 
nats<-xts(df[,-1], as.POSIXct(df$date)) 
M1<-na.locf.default(nats[,1]) 
M2<-na.approx(nats[,1]) 
M3<-na.spline(nats[,1]) 
nats1 <- fortify(nats) 
M1.1 <- fortify(M1) 
M2.1 <- fortify(M2) 
M3.1 <- fortify(M3) 
nats1$B <- nats1$a 
nats1[-rans,4] <-NA 
M1.1[-rans,2] <- NA 
M2.1[-rans,2] <- NA 
M3.1[-rans,2] <- NA 
nats1<- nats1[, c(1, 3, 4)] 
M1.1 <- M1.1[, 2] 
M2.1 <- M2.1[, 2] 
M3.1 <- M3.1[, 2] 
df.trial <- cbind(nats1,M1.1, M2.1,M3.1) 
names(df.trial) <- c("Index", "A", "B", "M1", "M2", "M3") 
df.trial1 <- gather(df.trial, "Method", "Value", 4:6) 
df.trial1$Date <- as.Date(strptime(df.trial1$Index, format="%Y-%m-%d %H:%M:%S", tz="Pacific/Auckland")) 
df.trial1 <- subset(df.trial1, select=c(6,2,3,4,5)) 

回答

4

从您的导游label.theme = element_text(angle = 0)似乎解决这个问题。

guides(color=guide_legend(override.aes=list(shape=c(NA,16, 16, 16, 16), 
             linetype=c(3,0, 0, 0, 0)), 
         direction = "vertical", title.position = "top", 
         label.position="right", label.hjust = 0, label.vjust = 0.5 
         #,label.theme = element_text(angle = 0) 
        )) + 
theme(legend.text=element_text(size=10)) 

enter image description here

+0

完美。谢谢:-) – aelwan

+1

为什么'label.theme = element_text(angle = 0)'必须被移除?或者:为什么如果我添加'ylab(“blabla”)'大小不起作用? – giordano

相关问题