statistics visualize#
Description#
生産量や生産性に関するCSVファイルやグラフを出力します。
出力結果から主に以下のことが分かります。
生産量や生産性の日ごとの推移
ユーザごとの生産性と品質
Examples#
基本的な使い方#
出力対象のプロジェクトのproject_idを指定してください。複数のプロジェクトを指定することも可能です。
$ annofabcli statistics visualize --project_id prj1 --output_dir out_dir
集計対象のタスクの条件を --task_query
で指定してください。
$ annofabcli statistics visualize --project_id prj1 --output_dir out_dir
--task_query '{"status": "complete"}'
注釈
できるだけ正しい生産性を求める場合は、--task_query '{"status": "complete"}'
を指定して、完了状態のタスクのみを集計対象としてください。
デフォルトでは完了状態でないタスクも「生産した」とみなします。
集計期間も指定できます。--start_date
は、指定した日付以降に教師付を開始したタスクを集計します。--end_date
は、指定した日付以前に更新されたタスクを集計します。
$ annofabcli statistics visualize --project_id prj1 --output_dir out_dir \
--start_date 2020-04-01
デフォルトでは10個以上のファイルを出力します。よく利用するファイルのみ出力する場合は、 --minimal
を指定してください。
$ annofabcli input_data put --project_id prj1 --output out_dir/
--minimal
実績作業時間情報から生産性を算出する#
デフォルトではアノテーションエディタ画面を触っていた作業時間(以下、「計測作業時間」と呼ぶ)を元に、生産性を算出します。 計測作業時間はコミュニケーションしている時間やアノテーションルールを読んでいる時間を含みません。 したがって、計測作業時間から算出した生産性を元にアノテーションの生産量を見積もると、見積もりから大きく外れる恐れがあります。
アノテーションの生産量を見積もる場合は、アノテーションエディタ以外の作業も含めた作業時間(以下、「実績作業時間」と呼ぶ)で生産性を算出することを推奨します。
実績作業時間から算出した生産性を出力するには、実績作業時間が記載されたCSVを --labor_csv
に渡してください。
$ annofabcli input_data put --project_id prj1 --labor_csv labor.csv \
--output out_dir/
以下、実績作業時間が記載されたCSV( labor.csv
)のサンプルです。
date |
account_id |
actual_worktime_hour |
project_id |
---|---|---|---|
2021-04-01 |
12345678-abcd-1234-abcd-1234abcd5678 |
8 |
prj1 |
2021-04-02 |
12345678-abcd-1234-abcd-1234abcd5678 |
6.5 |
prj1 |
複数のプロジェクトをマージする#
--project_id
に複数のproject_idを指定したときに --merge
を指定すると、指定したプロジェクトをマージしたディレクトリも出力します。ディレクトリ名は merge
です。
$ annofabcli input_data put --project_id prj1 prj2 --output out_dir/
--merge
並列処理#
--project_id
に複数のproject_idを指定したときは、並列実行が可能です。
$ annofabcli input_data put --project_id file://project_id.txt --output out_dir/
--parallelism 4
出力結果#
1個のプロジェクトを指定した場合#
$ annofabcli statistics visualize --project_id prj1 --output_dir out_dir --minimal
out_dir
├── histogram
│ ├── ヒストグラム-作業時間.html
│ └── ヒストグラム.html
├── project_info.json
├── line-graph
│ ├── 教師付者用
│ │ └── 累積折れ線-横軸_アノテーション数-教師付者用.html
│ ├── 受入者用
│ │ └── 累積折れ線-横軸_アノテーション数-受入者用.html
│ ├── 折れ線-横軸_教師付開始日-全体.html
│ ├── 折れ線-横軸_日-全体.html
│ ├── 累積折れ線-横軸_日-縦軸_作業時間.html
│ └── 累積折れ線-横軸_日-全体.html
├── scatter
│ ├── 散布図-アノテーションあたり作業時間と品質の関係-計測時間-教師付者用.html
│ ├── 散布図-アノテーションあたり作業時間と累計作業時間の関係-計測時間.html
│ ├── 散布図-アノテーションあたり作業時間と品質の関係-実績時間-教師付者用.html
│ ├── 散布図-アノテーションあたり作業時間と累計作業時間の関係-実績時間.html
│ └── 散布図-教師付者の品質と作業量の関係.html
├── タスクlist.csv
├── メンバごとの生産性と品質.csv
├── ユーザ_日付list-作業時間.csv
├── 教師付開始日毎の生産量と生産性.csv
├── 全体の生産性と品質.csv
└── 日毎の生産量と生産性.csv
- タスクlist.csv
- メンバごとの生産性と品質.csv
- 日毎の生産量と生産性.csv
- 教師付開始日毎の生産量と生産性.csv
- 全体の生産性と品質.csv
- ユーザ_日付list-作業時間.csv
- line-graph/折れ線-横軸_日-全体.html
- line-graph/累積折れ線-横軸_日-全体.html
- line-graph/折れ線-横軸_教師付開始日-全体.html
- line-graph/{phase}/累積折れ線-横軸_アノテーション数-{phase}者用.html
- line-graph/累積折れ線-横軸_日-縦軸_作業時間.html
- scatter/散布図-アノテーションあたり作業時間と品質の関係-{worktime_type}-教師付者用.html
- scatter/散布図-アノテーションあたり作業時間と累計作業時間の関係-{worktime_type}.html
- scatter/散布図-教師付者の品質と作業量の関係.html
複数のプロジェクトを指定した場合#
$ annofabcli statistics visualize --project_id prj1 prj2 --output_dir out_dir --minimal
プロジェクトごとにディレクトリが生成されます。
out_dir/
├── prj_title1
│ ├── タスクlist.csv
│ ├── メンバごとの生産性と品質.csv
│ └── ...
├── prj_title2
│ ├── タスクlist.csv
│ ├── メンバごとの生産性と品質.csv
│ └── ...
--merge
を指定した場合#
$ annofabcli statistics visualize --project_id prj1 prj2 --output_dir out_dir --minimal \
--merge
prj1とprj2の出力結果をマージしたファイルが、merge
ディレクトリに出力されます。
out_dir/
├── prj_title1
│ ├── タスクlist.csv
│ ├── メンバごとの生産性と品質.csv
│ └── ...
├── prj_title2
│ ├── タスクlist.csv
│ ├── メンバごとの生産性と品質.csv
│ └── ...
├── merge
│ ├── タスクlist.csv
│ ├── メンバごとの生産性と品質.csv
│ └── ...
Usage Details#
生産性に関するCSVファイルやグラフを出力します。
usage: annofabcli statistics visualize [-h] [--yes]
[--endpoint_url ENDPOINT_URL]
[--annofab_user_id ANNOFAB_USER_ID]
[--annofab_password ANNOFAB_PASSWORD]
[--logdir LOGDIR] [--disable_log]
[--debug] -p PROJECT_ID
[PROJECT_ID ...] -o OUTPUT_DIR
[-u USER_ID [USER_ID ...]]
[-tq TASK_QUERY]
[-t TASK_ID [TASK_ID ...]]
[--start_date START_DATE]
[--end_date END_DATE] [--latest]
[--get_task_histories_one_of_each]
[--labor_csv LABOR_CSV] [--minimal]
[--output_only_text] [--merge]
[--parallelism PARALLELISM]
Named Arguments#
- -p, --project_id
対象のプロジェクトのproject_idを指定してください。複数指定した場合、プロジェクトごとに統計情報が出力されます。
file://
を先頭に付けると、project_idが記載されたファイルを指定できます。- -o, --output_dir
出力先ディレクトリのパスを指定してください。
- -u, --user_id
メンバごとの統計グラフに表示するユーザのuser_idを指定してください。指定しない場合は、上位20人が表示されます。
file://
を先頭に付けると、一覧が記載されたファイルを指定できます。- -tq, --task_query
タスクの検索クエリをJSON形式で指定します。指定しない場合はすべてのタスクを取得します。
file://
を先頭に付けると、JSON形式のファイルを指定できます。クエリのキーは、task_id
,phase
,phase_stage
,status
のみです。- -t, --task_id
集計対象のタスクのtask_idを指定します。
file://
を先頭に付けると、task_idの一覧が記載されたファイルを指定できます。- --start_date
指定した日付(
YYYY-MM-DD
)以降に教師付を開始したタスクから生産性を算出します。- --end_date
指定した日付(
YYYY-MM-DD
)以前に更新されたタスクから生産性を算出します。- --latest
統計情報の元になるファイル(アノテーションzipなど)の最新版を参照します。このオプションを指定すると、各ファイルを更新するのに5分以上待ちます。 ただしWebAPIの都合上、'タスク履歴全件ファイル'は最新版を参照できません。タスク履歴の最新版を参照する場合は
--get_task_histories_one_of_each
を指定してください。- --get_task_histories_one_of_each
タスク履歴を1個ずつ取得して、タスク履歴の最新版を参照します。タスクの数だけWebAPIを実行するので、処理時間が長くなります。
- --labor_csv
実績作業時間情報が格納されたCSVを指定してください。指定しない場合は、実績作業時間は0とみなします。列名は以下の通りです。
date
account_id
actual_worktime_hour
project_id (optional:
--project_id
に複数の値を指定したときは必須です)
- --minimal
必要最小限のファイルを出力します。
- --output_only_text
テキストファイルのみ出力します。グラフが掲載されているHTMLファイルは出力しません。
- --merge
指定した場合、複数のproject_idを指定したときに、マージした統計情報も出力します。ディレクトリ名は
merge
です。- --parallelism
並列度。
--project_id
に複数のproject_idを指定したときのみ有効なオプションです。指定しない場合は、逐次的に処理します。
global optional arguments#
- --yes
処理中に現れる問い合わせに対して、常に
yes
と回答します。- --endpoint_url
Annofab WebAPIのエンドポイントを指定します。
Default: "https://annofab.com"
- --annofab_user_id
Annofabにログインする際のユーザーID
- --annofab_password
Annofabにログインする際のパスワード
- --logdir
ログファイルを保存するディレクトリを指定します。
Default: .log
- --disable_log
ログを無効にします。
- --debug
HTTPリクエストの内容やレスポンスのステータスコードなど、デバッグ用のログが出力されます。
アノテーションユーザまたはオーナロールを持つユーザで実行してください。