Hatena::ブログ(Diary)

こにしき(言葉、日本社会、教育) このページをアンテナに追加 RSSフィード

April 29, 2014

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


スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/TerasawaT/20140429/1398748942