dataframe を準備
- 異なる種類のデータを統合するときはこのdata frame作成時にやる。
- カラム名がggplot()内部での変数名となるので、注意!
df <- data.frame(
i=as.vector(cov),
c=as.vector(mapply(func,delta,watermark[1],watermark[2],watermark[3],watermark[4],watermark[5],watermark[6],watermark[7])),
t=as.Date(index(cov)))
ggplot作成の第一歩
データフレームおよび基礎データの指定
グラフの種類およびyデータの指定
- ぞれぞれ棒グラフの作成、分散図の作成、線グラフの作成する。
- aes(y=<column name of data fram>,,,)の形でデータフレームのカラム名のうち適当なものをy軸のデータとして指定する。
- 色を付けたい場合はaes(fill=<column name of data frame>)などとする。
- geom_segment()は任意の2つの座標の間に線分を引く
p <- p + geom_bar(aes(y=r),stat = "identity",fill='pink',colour="black")
p <- p + geom_point(aes(y=i),stat="identity", position="identity",colour="green",size=0.8)
p <- p + geom_path(aes(y=i),stat="identity", position="identity",colour="black",linetype="dotted")
p <- p + geom_segment(x=as.Date("1985-01-01"),y=log(168),xend=as.Date("2019-09-01"),yend=log(3000),color='white',size=0.02,linetype=2)
棒グラフに色をつけたい場合。
この例ではfillとcolor(colour)双方をつかっている。詳細は
scale_color_brewer()
と
scale_fill_brewer()
で追加の設定を行う。
p <- p + geom_bar(aes(y=r,fill=clidelta),stat = "identity",colour="black")
p <- p + geom_point(mapping=aes(y=i,colour=clidelta),stat="identity", position="identity",size=0.8)
色指定したいデータについて使用するパレットとそれぞれの色値に対する説明を入力する。fillの場合はこの
scale_fill_brewer()
を使う。
scale_fill_discrete()
とか
scale_colour_discrete()
あるがよくわからないことがまだ多いので、注意して使うこと。
legendlable <- c(paste("more than ",as.character(round(watermark,digits=2)),sep=""),"Less than above","NA")
p <- p +scale_fill_brewer(palette="Spectral",na.value = "grey50",name = "CLI Delta", labels = legendlable)
ヒストグラムの色々
- 目的に応じて、"identity","stack","fill" それぞれのパラメータを指定する。
- ヒストグラムのx軸に連続量を指定する場合、離散量を指定する場合で結果が全く異なるので注意すること。
p <- p + geom_histogram(aes(fill=sign),position = "identity", alpha = 0.3,bins=120)
p <- p + geom_histogram(bins=50,position = "fill", alpha = 0.9)
p <- p + geom_histogram(bins=80,position = "stack", alpha = 0.9)
X軸の間隔指定
Date型のときに使用する。
p <- p + scale_x_date(date_breaks = "2 year", date_labels = "%Y")
時間量に応じてグラデーションで色を変えたいときに使用する。
p <- p + scale_fill_date(low = "green3" , high = "darkgreen")
グラフを重ねて書きたい場合
最初にNULLでggplotオブジェクトを作成しそこに順次各種グラフを追加していく。
p <- ggplot(NULL)
df <- data.frame(
t=last(index(tokyo_death),length_graph),
value=last(tokyo_death[,1],length_graph)
)
p <- g+geom_bar(data=df, aes(x = t, y = value),stat = "identity",alpha=0.5,colour="red",fill="red")
df <- data.frame(t=last(index(v),length_graph), value=last(mapply(func,v[,1],v[,2],v[,3],v[,4],v[,5],v[,6],v[,7],v[,8]),length_graph)
)
p <- g+geom_line(data=df, aes(x = t, y = value))
plot(g)
タイトルおよび凡例
全体タイトルとレジェンドのタイトルを指定する。共通なタイトルを指定するとレジェンドを一つに統合できる。一方、
パレットを使用しないスケールの場合はhueを指定する。
p <- p + labs(title = "SPX + Theory + Residual + CLI Delta",fill="CLI Delta",colour = "CLI Delta")
p <- p + scale_color_brewer(palette="Spectral",na.value = "black",name = "CLI Delta", labels = c("High","mid High","mid Low","Low","NA"))
p <- p + scale_fill_brewer(palette="Spectral",na.value = "black",name = "CLI Delta", labels = c("High","mid High","mid Low","Low","NA"))
p <- p + scale_fill_hue(name='regions')
任意の線を引く
水平線を引く。
p <- p + geom_vline(xintercept=seq(as.Date(paste(substr(index(head(spx_mean,1)),1,7),"-01",sep="")),as.Date("2019-01-01"),by='years'), colour="white",size=0.4,alpha=0.5)
垂直線を引く。
p <- p + geom_vline(xintercept=seq(as.Date(paste(substr(index(head(spx_mean,1)),1,7),"-01",sep="")),as.Date("2019-01-01"),by='years'), colour="white",size=0.4,alpha=0.5)
任意の直線を引く
p <- p + geom_segment(x=as.Date("1985-01-01"),y=log(168),xend=as.Date("2019-09-01"),yend=log(3000),color='white',size=0.02,linetype=2)
回帰線
p <- p + stat_smooth(aes(x=t,y=i),method="loess",color='white',size=0.3)
テーマ
x-y軸のタイトル消去
p <- p + theme(axis.title.x=element_blank(),axis.title.y=element_blank())
台紙の色指定
p <- p + theme(rect = element_rect(fill = "grey88",
colour = "black",
size = 0,
linetype = 1))
パネルの色指定およびグリッドの消去
p <- p + theme(panel.background = element_rect(fill = "grey88",
colour = "lightblue"),
panel.grid = element_blank())
その他
コメント入力
p <- p + annotate("text",label=as.character(s),x=as.Date("2000-01-01"), y=log(s*1.03),colour='white')
未検証
p <- p + theme(axis.text = element_text(colour = "red", size = rel(1.5)))
パレットの検証
library(RColorBrewer)
display.brewer.all()
過去に使用した関数
- p <- p + geom_bar
- p <- p + geom_path
- p <- p + labs
- p <- p + scale_fill_date
- p <- p + scale_x_date
- p <- p + geom_bar
- p <- p + geom_histogram
- p <- p + geom_hline
- p <- p + geom_path
- p <- p + geom_point
- p <- p + geom_vline
- p <- p + labs
- p <- p + scale_color_brewer
- p <- p + scale_fill_brewer
- p <- p + scale_x_date
- p <- p + theme
- p <- p + scale_fill_hue
Enable GingerCannot connect to Ginger Check your internet connection
or reload the browserDisable in this text fieldEditEdit in GingerEdit in GingerEnable GingerCannot connect to Ginger Check your internet connection
or reload the browserDisable in this text fieldEditEdit in GingerEdit in GingerEnable GingerCannot connect to Ginger Check your internet connection
or reload the browserDisable in this text fieldEditEdit in GingerEdit in Ginger