[R] ggplo2 でヒストグラム描出入門

ggplot2 を使ってヒストグラムを描く。基本的な使い方のメモ。「3. まとめ」に一覧をリストアップしています。

1. 準備
分析する練習データは:
data <- c( 0, 14, 30, 30, 46, 48, 49, 50, 52, 53, 54, 55, 56, 60, 63, 64, 65, 66, 68, 68, 72, 73, 74, 76, 78, 81, 81, 84, 86, 93, 93, 100 )
を利用する (乱数をつかって作成した)。データフレームに変換する (列名は score とする):
data <- data.frame(score = data)


2. 作図
さて、ggplot2を読み込んでから、ggplot()を利用し、変数 m に入れる:
library(ggplot2)
m <- ggplot(data, aes(x = score))
変数dataに入っているデータフレームの、列名score のデータを利用する、と考えると分かりやすい。わざわざ aes(x = data$score) とせずに aes(x = score) だけで良い様子。

では、geom_histogram()で作図する:
m + geom_histogram()
Fig 1. m + geom_histogram()


警告がでる( "stat_bin: binwidth defaulted to range/30. Use 'binwidth = x' to adjust this." )
階級の幅がデフォルトでは range/30 となっている。binwidth=x を利用して階級の幅を10にしてみよう:
m + geom_histogram(binwidth=10)
Fig 2. m + geom_histogram(binwidth=10)


さて、全体的に真っ黒で分かりづらい。枠の色を黒、中身の色を透明にしてみる:
m + geom_histogram(binwidth=10, colour="black", fill=NA)
Fig 3. m + geom_histogram(binwidth=10, colour="black", fill=NA)


枠をdarkgreen、中身をskyblueにしてもキレイ:
m + geom_histogram(binwidth= 10, colour="darkgreen", fill="skyblue")
Fig 4. m + geom_histogram(binwidth= 10, colour="darkgreen", fill="skyblue")


枠線の指定はイギリス式にcolour でも アメリカ式にcolorでも、どちらでも通用する。

さて、ここで0 + 10n の値がどちらの階級に含まれているか、確認しておこう。上の図を見ると:
0点より左側にビンが無く、100よりも右側にビンがある
のだ。ということから、binwidth=10 とした時、0~9, 10~19, 20~29,...,90~99, 100~109 という階級になっていることが分かる。
したがって、次のように、binの幅を明示的に指定しても、Fig.4 と同じプロットができる:
m + geom_histogram(breaks=seq(-0.5, 109.5, by=10), colour="darkgreen", fill="skyblue")
Fig 5. m + geom_histogram(breaks=seq(-0.5, 109.5, by=10), colour="darkgreen", fill="skyblue")


さて、灰色の背景色を白色にしたい場合は theme_bw() を利用する。theme_bw() の bw は blackとwhiteの略の様:
m + geom_histogram(binwidth=10, colour="black", fill=NA) + theme_bw()
Fig 6. m + geom_histogram(binwidth=10, colour="black", fill=NA) + theme_bw()


X軸, Y軸, タイトルをつけるには labs() を利用する:
m + geom_histogram(breaks=seq(-0.5, 109.5, by=10), colour="darkgreen", fill="skyblue") + theme_bw() + labs(y="Frequency", x="Score", title="Histogram of DATA")
Fig 7. m + geom_histogram(breaks=seq(-0.5, 109.5, by=10), colour="darkgreen", fill="skyblue") + theme_bw() + labs(y="Frequency", x="Score", title="Histogram of DATA")


軸の幅 (定義域や値域) を指定するには xlim( , ) や ylim( , ) を利用する。Y軸を10まで伸ばしてみる:
m + geom_histogram(breaks=seq(-0.5, 109.5, by=10), colour="darkgreen", fill="skyblue") + ylim(0,10)
Fig 8. m + geom_histogram(breaks=seq(-0.5, 109.5, by=10), colour="darkgreen", fill="skyblue") + ylim(0,10)


図を横にするには coord_flip() を利用:
m + geom_histogram(binwidth=10, colour="darkgreen", fill="white") + coord_flip()
Fig 9. m + geom_histogram(binwidth=10, colour="darkgreen", fill="white") + coord_flip()



3. まとめ
  • データの指定: ggplot(変数名, aes(x = 列名))
  • ヒストグラム描出: + geom_histogram()
    • 幅を指定: + geom_histogram(binwidth = 数値)
    • 枠線の色: + geom_histogram(colour = "色")
    • ビンの色: + geom_histogram(fill = "色")
  • 背景色を透明: + geom_histogram() + theme_bw()
  • 軸やタイトル: + geom_histogram() + labs(x = "x軸名", y = "y軸名", title = "タイトル")
  • 定義域の指定: + geom_histogram() + xlim( , )
  • 値域の指定: + geom_histogram() + ylim( , )
  • 図を横に倒す: + geom_histogram() + coord_flip()

4. 参考

[Mac] CasualConc はサブディレクトリまでもぐってファイルを読み込んでくれる

CasualConc は大阪大学の今尾先生が開発されたMac OSX用のコンコーダンサー (フリーウェア) 。まだ使い始めて10分くらいで、表面的な活用しかできていないが、もう気に入ってしまった。

利用目的はKWIC検索。R (とTreeTagger) を使って語彙頻度表を自作したのだが、それを眺めていると、気になる単語が浮かび上がって来る。その語がどういう環境で利用されているかを知るために CasualConc を利用するつもりだ。

CasualConc には惚れる: ファイルの読み取りで、サブディレクトリまで潜っていってくれるのだ。

現在、あるディレクトリの下にいくつかのサブディレクトリを作成し、そこにテキストファイルを保管している。であるから、あるディレクトリを Open すると自動的にサブディレクトリまでもぐってファイルを読み込んでくれる機能が大変ありがたい。

見た目も美しいし、操作性も良いし、高度で便利な利用法も実装している。それにも関わらずフリーで利用できるなんて、にわかには信じられない。開発された今尾先生に感謝しながら、ガシガシ利用させていただきたい。ちなみに、正規表現を利用したファイルの読み込みは出来るのだろうか? マニュアルで要確認。


関連エントリー

[R] ggplot2 入門

調べ物をしていたら、ggplot2 を利用した図を何度か目にした。非常に美しい。ぜひ使えるようになりたい。以下、リンク:

上記リンク先の説明は、どれも非常に分かりやすい。図であろうと言語であろうと、情報を分かりやすく伝達するための配慮を感じる。

[英語] "like never before"

アップル (Apple) の iOS 8 のプレビュー・ページ。簡潔で小気味の良い説明。お見事。

説明文を読んでいると、上記ページ内に "like never before" という表現が 2度も利用されていることに気がつく。"Think different" というアップルのスローガンのより具体的な表現と言えるだろう。

さて、"like never before" は流行り言葉であるようだ。Google books Ngram Viewer で検索すると、1980年代あたりから急激に利用頻度が増えはじめる: アメリカとイギリスを比較すると、アメリカにおいてより多く利用されているのが分かる。y軸の値に着目して欲しい (上がアメリカ、下がイギリス): never before の vbfのコンビネーション (/vərbɪfɔːr/) で口先が忙しいが、ぜひ使ってみたい。

[本] 宇佐美寛先生 6月の新作

Amazon.co.jpは「関連商品」「同じテーマの商品」「オススメ商品」などを教えてくれる。購入履歴や欲しい物リストの情報から、購入する蓋然性の高い商品を選択・表示しているのだろう。

さて、そのAmazonが宇佐美寛先生の新著をご紹介くださった:


『宇佐美寛 (2014).『私の作文教育』さくら社』

帯の絵は好みと違うが (きっとすぐに捨てる) 、カバーデザインは素敵。宇佐見先生の本らしい。

宇佐見先生による作文関係の著書は私の手元に3冊ある:

この3冊を通して作文の書き方を学んだ。考え方まで学んだ。学び取った「書き方」「考え方」がどれだけ通用するか、新作で試してみたい。

[本] 村上春樹の「見えない」テクスト群: 外国語版インタビュー

以前のエントリーではただ羅列しただけの都甲先生の本。 分かりやすいし、グイグイ読ませる力強さもある。

さて、村上春樹作品に言及している部分で、彼の「見えない」テクスト群の一つに、翻訳されていない外国語版のインタビュー群がある(ibid.: 98) と指摘し、それらのインタビューを丁寧に引用 (翻訳)・整理・提示している。The Paris Review によるインタビューが気になったが、なんとオリジナルのインタビューがネット上で読めるようだ。


P.S.
村上春樹関連で言うと、下のリンク先 (New York Times) の写真が好き。

[本] 8月に買った本

この8月は手元にある本を読み直すことが多かった。とはいえ、新しい仲間もたくさん増えた。良い本と出会えると嬉しい。

[R] Excel データをコピペすると ベクトル (<-c()) に変換する ウェブ・アプリ

概要
エクセル・データをコピペすると、ベクトル (x <- c(1,2,3) ) に変換するウェブ・アプリです。

背景
エクセル (Excel) でデータを管理し、分析の際に R を利用することがあります。そのために、エクセルのデータをCSVデータに変換し、Rで読み込む必要がありますが、その作業が面倒です。また慣れるまではとても難しく感じます (R を使い始めたばかりの頃、その作業が出来ず、手打ちでデータを読み込ませていました)。よし分析するぞ、と意気込んだものの、データの読み込みが出来ずがっかりする、という経験をした人は少なくないと思います。そこで、エクセルデータを単にコピー&ペーストするだけで、R で扱えるデータに変換してくれるウェブ・アプリを作りました。

使い方

  1. エクセルデータをコピーします

  2. 例として、「A組中間考査」の赤で囲った部分をコピーします。

  3. ウェブ・アプリ上で データの貼付け (①) 変数名の決定 (②)

  4. 下の Data: の欄に、先ほどコピーしたデータを貼付けます。また、そのデータの格納先の変数名は、Vector Name 欄に入力します (例では a.mid としています)。

  5. 変換されたデータをコピーし、R コンソールへペースト

  6. 自動的にデータがベクトルに変換されます。コピーして、R コンソールにペーストしてください。これで、「A組中間考査」のデータは a.mid として R で利用可能です。

  7. 必要な分、繰り返し
  8. 「A組期末考査」のデータも分析したい場合は、上の手順をくり返します。変数名は a.term などが良いかもしれません。

上手な使い方

  1. 今回は縦に入力されたデータをコピペしましたが、横に入力されたデータを変換することも出来ます。

留意点

  1. 無料
  2. お金はかかりません。
  3. 入力された数値のデータを取得しません
  4. どんな数値が入力されたか、私には分かりません。
  5. 免責
  6. 上記ウェブ・アプリが悪意のある動作をすることは無いと思いますが、ご利用による一切の責任は負えません。ご自身の責任でご利用ください。



参考





[R] 英文をabc順に並べ替え さらに 番号を振る ウェブ・アプリ

英文を単語に分解し、アルファベット順に並べ替え、さらに、並べ替えた後に番号をふるウェブ・アプリを作りました。

例えば、this is an example sentence と入力すると、
自動で ① an ② example ③ is ④ sentence ⑤ this と変換します。

使い方

  1. もとの英文を、"Text Input" の下のボックスに入力します (例: this is an example sentence) 。
  2. 並べ替えられた英文が、"Text Arranged and Numbered" の下に表示されます (例: ① an ② example ③ is ④ sentence ⑤ this) 。
  3. 表示された英文をコピー・アンド・ペーストします。
  4. 必要に応じて整形 (タブやスペースを入れる) してください。
  5. (丸囲み数字と単語の間には半角スペースが1つ入っています)
上手な使い方
  1. 文頭を小文字にする
  2. 先頭の単語が固有名詞や "I" の場合をのぞき、先頭を小文字に変えて入力します。大文字は大文字のまま、小文字は小文字のまま並べ替えます。
  3. 文末のピリオドやクエスチョン・マークなどを入力しない
  4. 文末にピリオドなどを入力する必要はありません。
留意点
  1. 無料
  2. お金はかかりません。
  3. 入力された英文のデータを取得しません
  4. どんな英文が入力され並び替えられたか、私には分かりません。安心してご利用ください。
  5. 免責
  6. 上記ウェブ・アプリが悪意のある動作をすることは無いと思いますが、ご利用による一切の責任は負えません。ご自身の責任でご利用ください。


参考

[R] 英文をabc順に並べ替えるウェブ・アプリ

英文を単語に分解し、アルファベット順に並べ替えるウェブ・アプリを作りました。

例えば、this is an example sentence と入力すると、
自動で ( an / example / is / sentence / this ) と変換します。

使い方

  1. もとの英文を、"Text Input" の下のボックスに入力します (例: this is an example sentence) 。
  2. 並べ替えられた英文が、"Text Arranged" の下に表示されます (例: ( an / example / is / sentence / this )) 。
  3. 表示された英文をコピー・アンド・ペーストします。
上手な使い方
  1. 文頭を小文字にする
  2. 先頭の単語が固有名詞や "I" の場合をのぞき、先頭を小文字に変えて入力します。大文字は大文字のまま、小文字は小文字のまま並べ替えます。
  3. 文末のピリオドやクエスチョン・マークなどを入力しない
  4. 文末にピリオドなどを入力する必要はありません。
留意点
  1. 無料
  2. お金はかかりません。
  3. 入力された英文のデータを取得しません
  4. どんな英文が入力され並び替えられたか、私には分かりません。安心してご利用ください。
  5. 免責
  6. 上記ウェブ・アプリが悪意のある動作をすることは無いと思いますが、ご利用による一切の責任は負えません。ご自身の責任でご利用ください。


参考

[本] 『英語の使い方』を読む日曜日

今井先生の『英語の使い方』を購入、拝読。

まえがきから引用する:

日本で最も広く学ばれている外国語は、言うまでもなく英語である。そしてほとんどの英語学習者の最終目的は「英語を使いこなすこと」、つまり、英語を用いて「読み、書き、話し、聴き取る」能力を獲得することにある。...
著者は、最近ともすれば耳にする「文法など無視して英語によるコミュニケーション能力を養え」などという暴論にくみするものでは決して無い。... 実用的文法知識はコミュニケーション能力にとって必須の知識なのだ。
とは言いながら、文法を知っているだけでは適切な状況下で適切な英語を使えないのもまた事実である。...
言いたいこと書きたいこと – つまり自分の意図 – を確実に相手に伝えるためには「文法+x」の知識が必要となる。この巻はそうした「+x」を学んでもらうことを目指している。
(ibid.: まえがき; emphasis in the original)
全9章、本文179ページ。前半部分は文法的側面が強い。上質の例文が極めて注意深く配置され、そこに明快な補足説明がなされている。理解だけでなく、自分が説明する際にも大変役に立つだろう。

中盤からは「+x」的側面が強くなってくる。著者の体験談がふんだんにちりばめられている。英語で皮肉を言ったりジョークを飛ばせる著者の英語力 (文法+x) の高さを実感できる。

読み出したら止められず、一日で通読してしまった。読んでいて分かりやすいだけでなく、知的好奇心をくすぐったりユーモアで楽しませたりと、読者に対する配慮が満載だ。


今井邦彦. (1995) 『4. 英語の使い方 <テイクオフ英語学シリーズ>』. 大修館書店.
(大修館書店に寄る書籍の詳細ページはこちら)

[Windows] AutoHotKey その2

職場の Windows PC に AutoHotKey というソフトを導入して、キーバインドを変更 したら、ものすごくキー入力が楽になった。ホームポジションから手をはずさずに上下左右、行頭・行末にカーソルを移動させたり、文字を削除したりできる。ストレスフリー。 カーソル移動系...