memo

python を使ったデータ処理など

TogglAPI を python からたたく (1)

Toggl はオンラインベースの行動記録サービス。操作は、Web ブラウザ、デスクトップアプリ、スマホアプリを使うことができる。どのインターフェースを使っても web 上の API をたたいており、スムーズに同期出来るようになっている。API が公開されているので、python からたたいてみる。

 

参考リンク

Toggl

Toggl API Documentation

 API は良く更新されているのか、いくつかバージョンがある。本家サイトのドキュメントは古そうなので注意。

 

目次

  • Toggl のシステム
  • API の使い方
  • Workspaces の取得する [続く]
  • Detailed report を取得する [続く]

 

Toggl のシステム

Toggl の仕組みは、ざっと以下の通り。

  • まず workspace を設定する。(職場の複数部署の掛け持ちを想定?)
  • workspace 毎に、project を設定する。
  • project には、client を指定できる。
  • project 毎に time entry (作業内容) を登録する。
  • entry には、開始時刻、終了時刻が設定される。
  • enrty には、タグを指定できる。

workspace はデフォルトでは、"username's workspace" が用意されている。workspace をまたぐような設定やデータの取得は出来ない。

なので、例えば「全ての workspace から entry を取得」したい場合、まず、workspace の一覧を取得してから、個々の workspace に対してそれぞれ entry を取得する。

 

API の使い方

Toggl の API は、Toggl API と、Reports API の 2 種類がある。

Reports API は、web ブラウザで見れるレポートと同等の統計情報を取得できる。読み込み専用。

接続時には、basic 認証を行う。ユーザー名は、API token (webブラウザから、プロフィールタブを開き確認する)、パスワードに、'api_token' を指定する。

python での例

(requests モジュールのインストールが必要。requests が無い場合は urllib2 でがんばる)

 

続きはまた後日

図の同じ場所に text を入れる

概要

matplotlib で図中にテキストを入れる際に、データの座標ではなく、グラフの座標を指定したい。

用途

  • 複数のグラフの同じ位置に文字を入れたいとき 

方法 

Axes.text() を呼び出す際に、データ座標 (data coords) ではなく、軸座標 (axis coords) を指定する。具体的には、

  • 座標範囲は 0~1 を指定。左下が (0, 0)、右上が (1, 1)。
  • transform 引数に、呼び出す Axes インスタンスの transAxes メンバを渡す

 出典

 

 コード例

f:id:ars096:20130816005959p:plain