会社に方に教えてもらう。。
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")