• このエントリーをはてなブックマークに追加

スポンサードリンク

はじめに

最近, 寝坊がひどいので, 睡眠時間管理をちゃんと使用と思います.

記録は org-mode で実施しようと思うので, org-mode で作成した表を R をつかって折れ線グラフをかく方法を調べました.

やりかた

org-table を R 言語の中で利用するには以下が必要.

  1. table に tblname をつける
  2. begin_src のオプションで :var オプションをつける.

実例: 睡眠時間の可視化

org-table

以下のようなテーブルを用意します.

  #+tblname: sleeptime
   | Date            |  Bed | Wake | Total | fisical |
   |-----------------+------+------+-------+---------|
   | <2014-09-01 月> |   25 |  7.5 |   6.5 |      0. |
   | <2014-09-02 火> |   23 |  5.5 |   6.5 |      0. |
   | <2014-09-03 木> |   23 |  7.0 |    8. |     1.5 |
   | <2014-09-04 木> |   23 |  7.0 |    8. |     1.5 |
   | <2014-09-05 金> |   23 |  7.5 |   8.5 |      2. |
   | <2014-09-06 土> |   25 |  8.0 |    7. |     0.5 |
   | <2014-09-07 日> | 28.5 | 11.0 |   6.5 |      0. |
   | <2014-09-08 月> |   24 |  7.5 |   7.5 |      1. |
   | <2014-09-09 火> | 22.5 |  5.5 |    7. |     0.5 |
   | <2014-09-10 水> | 23.5 |  7.5 |    8. |     1.5 |
   | <2014-09-11 木> |   22 |  7.5 |   9.5 |      3. |
   | <2014-09-12 金> |   21 |  7.5 |  10.5 |      4. |
   | <2014-09-13 土> |   20 |  8.0 |   12. |     5.5 |
   | <2014-09-14 日> | 28.5 |  9.5 |    5. |    -1.5 |
   | <2014-09-15 月> | 23.5 |  7.5 |    8. |     1.5 |
   | <2014-09-16 水> | 22.0 |  7.5 |   9.5 |      3. |
   | <2014-09-17 水> | 23.0 |  5.5 |   6.5 |      0. |
   | <2014-09-18 木> | 24.0 |  7.5 |   7.5 |      1. |
   | <2014-09-19 金> | 24.0 |  7.5 |   7.5 |      1. |
   | <2014-09-20 土> | 24.5 |  8.0 |   7.5 |      1. |
   | <2014-09-21 日> | 26.0 |  8.0 |    6. |    -0.5 |
   | <2014-09-22 月> | 23.0 |  7.5 |   8.5 |      2. |
   | <2014-09-23 火> | 28.5 |  8.5 |    4. |    -6.5 |

表の先頭に, tblname:をつけるのがポイント

  #+tblname: sleeptime

R

次に 表を R のデータフレームとして取り込んで処理します.

   #+begin_src R :file sleeptime.png :width 500 :height 500 :results graphics :var sleeptime=sleeptime
   date <- strptime (sleeptime$Date, "<%Y-%m-%d")
   plot (date, sleeptime$Total, xlab='date', ylab='Sleeptime', main='Plot of Sleeptime (2014/09)', type='l')
 # #+end_src

:var オプションがポイント.

 :var sleeptime=sleeptime

評価すると,以下のような折れ線グラフができました.

20150302_sleeptime.png