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(僕もさっき知った)")