vcd/vcdExtra で日本語を使う
その2
Tokyo.R #66	LT
2017/12/16
作新学院大学 人間文化学部
藤本一男
kazuo.fujimoto2007@gmail.com
2017/12/16 Tokyo.R#66	LT 1
構成
• 前回(Tokyo.R#65LT)の続きです。
– https://www.slideshare.net/kazuofujimoto/2mosaic-
plot-80084536
• 今回のテーマ vcd/vcdExtra	のfunctionでfacetを
使う
• mosaic	のcotabplot
• 一致度表示(agreementplot)の表示
• まとめ:
– structplotでの日本語利用のためのフォント設定方
法
2017/12/16 Tokyo.R#66	LT 2
前回(その1)のreview
• vcd/vcdExtraというカテゴリカル・データ可視化の
パッケージ
– 便利なものがそろっている。
– でも、日本語が「使えない」!
• structplot frameworkなので、日本語設定(フォン
ト指定)が必要。latticeやggplot2と同じgridベース。
• font 設定の実際。 これが中心。
• slidshareで公開してます。
– https://www.slideshare.net/kazuofujimoto/2mosaic-plot-
80084536
– slideshare vcd mosaic	でググれば見つかります。
2017/12/16 Tokyo.R#66	LT 3
mosaic	とmosaicplot
• 報告を聞いていただく前提
– 以下のものは違います、ということ。
• (base	)	の graphics::mosaicplot
• vcd::mosaic
2017/12/16 Tokyo.R#66	LT 4
今回のテーマ vcd/vcdExtra	の
functionでfacetを使う
• cotabplotという窓(小窓?)
– conditional	table	plot
– cotabplot is	a	generic	function	for	creating	trellis-
like	coplots (conditional	plots)	for	contingency	
tables.	
• 入力するデータ
– 第3の変数(条件変数)を含めたarray。structable
にしてなくてもよいもよう。
• いわゆる、~ x	+	y |	z	の形でも投げ込める。
2017/12/16 Tokyo.R#66	LT 5
mosaic	のcotabplot
• x、y、と z:conditon
• facetの枠で日本語を使う(フォントを指定する)
方法
• cotabplot の default	は、mosaic。
– https://www.rdocumentation.org/packages/vcd/versions/
1.4-3/topics/cotabplot
• 別のものを表示させるには、panel で指定。
– panel= の形で指定。あとで、assocplot とagreementplotを。
– cotab_panel
– https://www.rdocumentation.org/packages/vcd/versions/
1.4-3/topics/cotab_panel
2017/12/16 Tokyo.R#66	LT 6
mosaicの表示
• オリジナル • 変数、カテゴリを日本語
で
2017/12/16 Tokyo.R#66	LT 7
スッピンmosaic
本体は、最初の一行だけ。あとは、色指定、フォント指定。
2017/12/16 Tokyo.R#66	LT 8
2017/12/16 Tokyo.R#66	LT 9
分割方向を変えると
最後の行の、direction	=c(“v”,”h”,”v”)	で、髪を「縦」、眼を「横」、性別を「縦」の
分割で表示せよ、という指示。arrayのmargin番号の順番。
2017/12/16 Tokyo.R#66	LT 10
direction	=c(“v”,”h”,”v”)
2017/12/16 Tokyo.R#66	LT 11
cotabplotで表示
2017/12/16 Tokyo.R#66	LT 12
2017/12/16 Tokyo.R#66	LT 13
cotabplot でのpanel function
• mosaic	がdefault
• 他は、panel	=	で指示する。
• cotab_panel 以下にリストあり。
– https://www.rdocumentation.org/packages/vcd/v
ersions/1.4-3/topics/cotab_panel
2017/12/16 Tokyo.R#66	LT 14
assocplot の facet	表示
2017/12/16 Tokyo.R#66	LT 15
一致度表示(agreementplot)
• このagreementplot は、変数、カテゴリー
でのフォント指定ができない。
• しかし、facetの枠は指定可能
• panel、layoutの指定
2017/12/16 Tokyo.R#66	LT 16
事例:agreementplot
• 設問16(返信をどのくらいでするか)、設問17
(返信はどのくらいで欲しいか)。
• この回答の変数カテゴリー間の「一致」度合い
を図示する。
• agreementplotは、変数、カテゴリに日本語を
使うこと不可。
.dd.2	%>%	group_by(問16f,問17f)	%>%	tally()	%>%	spread(問17f,n)	%>%	ungroup	%>%	
slice(1:5)	%>%	select(2:6)	%>%	as.data.frame()	%>%	as.matrix()	%>%	as.table()	->	.tbl
ll <- c("<5Min","<30Min","<1H","<1Day","NeverM")	
dimnames(.tbl)	<- list(Q16=paste0("Q16_",ll),	Q17=paste0("Q17_",ll))
2017/12/16 Tokyo.R#66	LT 17
2017/12/16 Tokyo.R#66	LT 18
順番につめていく。この例では、2つの facet がつくられる。日本語フォント指定のgparは、
text_gp =	gpar(fontsize =	12,	fontfamily =	“sans”)
レイアウトを指定して詰めていく。この例では、Sch x Sex の組み合わせを、
layout=c(2,2)	でレイアウトしてしている。
2017/12/16 Tokyo.R#66	LT 19
facet	の枠には、日本語を使える。
2017/12/16 Tokyo.R#66	LT 20
2017/12/16 Tokyo.R#66	LT 21
まとめ:structplotでの日本語利用
のためのフォント設定
• 変数名、カテゴリ名
– my.largs <- list(	
gp_labels =	gpar(fontsize =	12,	fontfamily =	”sans"),	
gp_varnames =	gpar(fontsize =	16,	fontfamily =	”sans"))
– mosaic(table_jp,		labeling_args =	my.largs)	のように呼ぶ
• タイトル、サブタイトル
– my.main =	gpar(fontsize=14,fontfamily=“sans”)
my.sub=	gpar(fontsize=10,	fontfamily=“sans”)
– mosaic(table_jp,main=“日本語”,	sub=“にほんご”,
labeling_args =	my.largs,
main_gp =	my.main,	sub_gp =	my.sub)
• ファセットのタイトル
– text_gp =	gpar(fontsize =	12,	fontfamily =	“sans”)
2017/12/16 Tokyo.R#66	LT 22
参考文献/URL
• vcd/vcdExtra
– Working with categorical data with R and the vcd and vcdExtra
packages
– https://cran.r-
project.org/web/packages/vcdExtra/vignettes/vcd-tutorial.pdf
• structplot
– The Strucplot Framework: Visualizing Multi-way Contingency
Tables with vcd
• https://www.jstatsoft.org/article/view/v017i03
– https://www.rdocumentation.org/packages/vcd/versions/1.4-
3/topics/strucplot
• cotab_panel
– https://www.rdocumentation.org/packages/vcd/versions/1.4-
3/topics/cotab_panel
2017/12/16 Tokyo.R#66	LT 23

Use Japanese with vcd/vcdExtra package