こにしき(言葉・日本社会・教育)

関西学院大学(2016.04~)の寺沢拓敬のブログです(専門:言語社会学)。

Rでグラフの文字をたて書きにする

Rのデフォは当然横書きだと思って、たて書きは無理だとあきらめてたんだけど、以下のサイトを見て、発想の転換をすればできるということがわかった。
plotで軸タイトルを縦書きにする - Qiita
改行(\n)をはさむ、という単純な話だったんだけど、思いつかなかった。ナイスアイディア、どうもありがとうございます。


ただ、上記のスクリプトだと、ベクトルの長さが1のものにしか対応していないので、たとえば棒グラフのカテゴリ名などには適用できない。


というわけで自作してみた。上記のスクリプトを流用させていただいてます。


for()関数を使ったら、裏RjpWikiのひとにまた怒られるのかもしれないが、ちょっと他の方法が思いつかないので、もし問題があったらご指摘どうぞよろしくお願い致します。

2014年5月15日追記

棒引き問題、つまり、「データ」が、



になってしまう問題に対処しました。


関数本体 tate.txt()

tate.txt <- function(x){
  for(i in 1:length(x)){
    xx <- gsub(pattern="ー",replacement="|",x[i])
    x[i] <- paste(collapse="\n", unlist(strsplit(split="", xx)))
  }
  return(x)
}

使用例

Data <- 1:4
names(Data) <- c("中華人民共和国","タイ","ルクセンブルク大公国","USA")
par(mar=c(10,5,5,1))
barplot(Data,las=2
        ,main="デフォルト")
barplot(Data,las=1,names.arg=tate.txt(names(Data))
        ,main="たて書き。しかしズレる")
barplot(Data,las=1,names.arg=tate.txt(names(Data))
       ,padj=1
       ,main="こういう場合は、\n引数に padj=1 を設定するとよい\n(僕もさっき知った)")


https://dl.dropboxusercontent.com/u/4689919/BLOG_Pict/tate1.png
https://dl.dropboxusercontent.com/u/4689919/BLOG_Pict/tate2.png
https://dl.dropboxusercontent.com/u/4689919/BLOG_Pict/tate3.png