ggplot2 でグループ折れ線グラフに凡例をつける

会社に方に教えてもらう。。
ggplot2 でグループ折れ線グラフに凡例(ガイド)をつける
guidesを使う.
データは、X,Y,Label
Labelで自動分類される.

  • 基本編
X<-c(c(1,2,3,4),c(1.1,2.2,3.0,4.1))
Y<-c(c(5,4,3,1),c(1,3,2,6))
label_0<-(c(rep("Taro",4),rep("Jiro",4)))

d<-data.frame(X,Y,label_0)
#df <-melt(d, id = c("x"))

p<-ggplot(d,mapping=aes(x=X,y=Y,label=label0,colour=label_0,linetype=label_0,shape=label_0))+theme_bw()
p<-p + geom_line(size=1)
p<-p + geom_point(size=4)
p <- p + theme(axis.text.x = element_text(size=20),axis.text.y = element_text(size=20),axis.title.x = element_text(size=20),axis.title.y = element_text(size=20)) 

text_label <- element_text(size=15,angle=0) 
gg <- guide_legend(title="データ",label.theme=text_label,title.theme=text_label,label=T)
p <- p + guides(linetype=gg,colour=gg,shape=gg) 
print(p)
  • 応用編

線種や色やポイントの形を変える,
scale_shape_manual(values = 0:8)
scale_linetype_manual(values=0:8)
の関数を使う.
valuesで線種等をコントール.
http://sape.inf.usi.ch/quick-reference/ggplot2/linetypehttp://sape.inf.usi.ch/quick-reference/ggplot2/linetype

###################
library("ggplot2")
library("scales")
library("extrafont")
#library("gridExtra")
##
#d<-data.frame(x1,y1,x1b,y1b,x1c,y1c,x1d,y1c)
#df<-melt(d)

xx0<-(1:6)+rnorm(6,sd=0.01)
yy0<-0.35*xx0^2
xx1<-(1:6)+rnorm(6,sd=0.01)
yy1<-10-0.2*xx0+rnorm(6,sd=0.1)
xx2<-(1:6)+rnorm(6,sd=0.01)
yy2<-1.3+rnorm(6,sd=0.5)
xx3<-(1:6)+rnorm(6,sd=0.01)
yy3<-10+rnorm(6,sd=1)
xx4<-(1:6)+rnorm(6,sd=0.01)
yy4<-12/(xx4)
x0<-c(xx0,xx1,xx2,xx3,xx4)
y0<-c(yy0,yy1,yy2,yy3,yy4)

l0<-c(rep("A",length(xx0)),rep("B",length(xx1)),rep("C",length(xx2)),rep("D",length(xx3)),rep("E",length(xx4)))

d<-data.frame(x0,y0,l0)

p<-ggplot(d,mapping=aes(x=((x0)),y=y0,label=factor(l0),colour=factor(l0),linetype=factor(l0),shape=factor(l0)))+theme_bw()
p<-p + geom_line(size=1)
p<-p + geom_point(size=4)
p <- p + theme(axis.text.x = element_text(size=20),axis.text.y = element_text(size=20),axis.title.x = element_text(size=20),axis.title.y = element_text(size=20)) 
p<-p+ scale_shape_manual(values = 16+1:5)
#p<-p+ scale_shape_manual(values = c(15:18,2:5))
#p<-p+scale_linetype_manual(values=1:5)
p<-p+scale_linetype_discrete()
#時間軸のプロットのとき
#p<-p+scale_x_date()
#p=p + scale_x_date(breaks = c(as.Date("2007-1-1"),as.Date("2009-1-1"),as.Date("2011-1-1"),as.Date("2013-1-1")),labels = c("2007","2009","2011","2013"))
#対数プロットのとき
#p<-p+scale_x_log10()
#p<-p + scale_x_continuous(trans = log10_trans(), breaks = trans_breaks("log10", function(x) 10^x,n=3),labels = trans_format("log10", math_format(10^.x)))
#p<-p + scale_x_continuous(breaks = c(10^-2,10^0,100),labels = trans_format("log10", math_format(10^x))))
#ログ軸に細かい値をつける
#p<-p+annotation_logticks(sides = "bt")
#文字入れ
p<-p+annotate("text", label="(a)", x=1.4 ,y=12,size=13) 

gg <- guide_legend(title="凡例",label.theme=ele,title.theme=ele)
p <- p + guides(linetype=gg,colour=gg,shape=gg)
p<-p+xlab("x")+ylab("y")
print(p)

#グラフをファイルにだすとき
#ggsave("test.png")