Skip to content

Commit cd82765

Browse files
authored
statistics visualize: 折れ線グラフを生産量別に指標を変更できるようにしました。 (#1661)
* Make cumulative line graph production volume selectable * Add HTML documentation for cumulative line graphs and productivity metrics - Created new HTML documentation for visualizing production volume metrics with a focus on cumulative line graphs for annotators and their productivity trends. - Added tests for plotting production volume metrics with selectors to ensure the correct generation of HTML files. - Updated existing test cases to reflect changes in output file names and content checks. * 生産量種別を切り替えられる折れ線グラフの出力機能を追加し、関連するHTMLドキュメントを作成しました。 * 生産量種別をセレクトボックスで切り替えられる機能をテストに追加 * 生産量種別のセレクトボックスに対応する折れ線グラフの生成メソッドを修正し、ツールチップ列を適切に設定するテストを追加 * tooltip_columnsの名前を変更し、折れ線グラフのテストを更新 * 作業時間グラフのツールチップ列を合計作業時間と生産量あたり作業時間に分割し、関連するメソッドを追加
1 parent 5916f5c commit cd82765

14 files changed

Lines changed: 1159 additions & 152 deletions

annofabcli/statistics/visualization/dataframe/cumulative_productivity.py

Lines changed: 310 additions & 77 deletions
Large diffs are not rendered by default.

annofabcli/statistics/visualization/dataframe/productivity_per_date.py

Lines changed: 638 additions & 0 deletions
Large diffs are not rendered by default.

annofabcli/statistics/visualization/project_dir.py

Lines changed: 5 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -141,31 +141,12 @@ def write_cumulative_line_graph(
141141

142142
phase_name = self.get_phase_name_for_filename(phase)
143143

144-
obj.plot_production_volume_metrics(
145-
production_volume_column="annotation_count",
146-
production_volume_name="アノテーション数",
147-
output_file=output_dir / f"{phase_name}者用/累積折れ線-横軸_アノテーション数-{phase_name}者用.html",
144+
obj.plot_production_volume_metrics_with_selector(
145+
output_file=output_dir / f"{phase_name}者用/累積折れ線-横軸_生産量-{phase_name}者用.html",
148146
target_user_id_list=user_id_list,
149147
metadata=self.metadata,
148+
include_input_data_count=not minimal_output,
150149
)
151-
for custom_production_volume in obj.custom_production_volume_list:
152-
obj.plot_production_volume_metrics(
153-
production_volume_column=custom_production_volume.value,
154-
production_volume_name=custom_production_volume.name,
155-
output_file=output_dir / f"{phase_name}者用/累積折れ線-横軸_{custom_production_volume.name}-{phase_name}者用.html",
156-
target_user_id_list=user_id_list,
157-
metadata=self.metadata,
158-
)
159-
160-
if not minimal_output:
161-
# アノテーション単位より大きい単位の折れ線グラフは不要かもしれないので、オプションにした
162-
obj.plot_production_volume_metrics(
163-
production_volume_column="input_data_count",
164-
production_volume_name="入力データ数",
165-
output_file=output_dir / f"{phase_name}者用/累積折れ線-横軸_入力データ数-{phase_name}者用.html",
166-
target_user_id_list=user_id_list,
167-
metadata=self.metadata,
168-
)
169150

170151
def write_performance_per_started_date_csv(self, obj: AbstractPhaseProductivityPerDate, phase: TaskPhase) -> None:
171152
"""
@@ -180,28 +161,11 @@ def write_performance_line_graph_per_date(self, obj: AbstractPhaseProductivityPe
180161
"""
181162
output_dir = self.project_dir / "line-graph"
182163
phase_name = self.get_phase_name_for_filename(phase)
183-
obj.plot_production_volume_metrics(
184-
production_volume_column="annotation_count",
185-
production_volume_name="アノテーション",
186-
output_file=output_dir / Path(f"{phase_name}者用/折れ線-横軸_{phase_name}開始日-縦軸_アノテーション単位の指標-{phase_name}者用.html"),
164+
obj.plot_production_volume_metrics_with_selector(
165+
output_file=output_dir / Path(f"{phase_name}者用/折れ線-横軸_{phase_name}開始日-縦軸_生産量単位の指標-{phase_name}者用.html"),
187166
target_user_id_list=user_id_list,
188167
metadata=self.metadata,
189168
)
190-
obj.plot_production_volume_metrics(
191-
production_volume_column="input_data_count",
192-
production_volume_name="入力データ",
193-
output_file=output_dir / Path(f"{phase_name}者用/折れ線-横軸_{phase_name}開始日-縦軸_入力データ単位の指標-{phase_name}者用.html"),
194-
target_user_id_list=user_id_list,
195-
metadata=self.metadata,
196-
)
197-
for custom_production_volume in obj.custom_production_volume_list:
198-
obj.plot_production_volume_metrics(
199-
production_volume_column=custom_production_volume.value,
200-
production_volume_name=custom_production_volume.name,
201-
output_file=output_dir / Path(f"{phase_name}者用/折れ線-横軸_{phase_name}開始日-縦軸_{custom_production_volume.name}単位の指標-{phase_name}者用.html"),
202-
target_user_id_list=user_id_list,
203-
metadata=self.metadata,
204-
)
205169

206170
def read_whole_performance(self) -> WholePerformance:
207171
"""`全体の生産性と品質.csv`を読み込む。"""

docs/command_reference/stat_visualization/mask_user_info.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ Examples
7777
7878
masked_out
7979
├── line-graph
80-
│   ├── 累積折れ線-横軸_アノテーション数-教師付者用.html
81-
│   └── 累積折れ線-横軸_アノテーション数-受入者用.html
80+
│   ├── 累積折れ線-横軸_生産量-教師付者用.html
81+
│   └── 累積折れ線-横軸_生産量-受入者用.html
8282
├── scatter
8383
│   ├── 散布図-生産量あたり作業時間と品質の関係-教師付者用.html
8484
│   ├── 散布図-生産量あたり作業時間と累計作業時間の関係.html

docs/command_reference/stat_visualization/merge.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ Examples
4444
4545
merge_dir
4646
├── line-graph
47-
│   ├── 累積折れ線-横軸_アノテーション数-教師付者用.html
48-
│   └── 累積折れ線-横軸_アノテーション数-受入者用.html
47+
│   ├── 累積折れ線-横軸_生産量-教師付者用.html
48+
│   └── 累積折れ線-横軸_生産量-受入者用.html
4949
├── scatter
5050
│   ├── 散布図-生産量あたり作業時間と品質の関係-教師付者用.html
5151
│   ├── 散布図-生産量あたり作業時間と累計作業時間の関係.html

docs/command_reference/stat_visualization/write_graph.rst

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,21 +30,14 @@ Examples
3030
│   └── ヒストグラム.html
3131
├── line-graph
3232
│   ├── 教師付者用
33-
│   │   ├── 折れ線-横軸_教師付開始日-縦軸_アノテーション単位の指標-教師付者用.html
34-
│   │   ├── 折れ線-横軸_教師付開始日-縦軸_入力データ単位の指標-教師付者用.html
35-
│   │   ├── 累積折れ線-横軸_アノテーション数-教師付者用.html
36-
│   │   ├── 累積折れ線-横軸_タスク数-教師付者用.html
37-
│   │   └── 累積折れ線-横軸_入力データ数-教師付者用.html
33+
│   │   ├── 折れ線-横軸_教師付開始日-縦軸_生産量単位の指標-教師付者用.html
34+
│   │   └── 累積折れ線-横軸_生産量-教師付者用.html
3835
│   ├── 検査者用
39-
│   │   ├── 折れ線-横軸_検査開始日-縦軸_アノテーション単位の指標-検査者用.html
40-
│   │   ├── 折れ線-横軸_検査開始日-縦軸_入力データ単位の指標-検査者用.html
41-
│   │   ├── 累積折れ線-横軸_アノテーション数-検査者用.html
42-
│   │   └── 累積折れ線-横軸_入力データ数-検査者用.html
36+
│   │   ├── 折れ線-横軸_検査開始日-縦軸_生産量単位の指標-検査者用.html
37+
│   │   └── 累積折れ線-横軸_生産量-検査者用.html
4338
│   ├── 受入者用
44-
│   │   ├── 折れ線-横軸_受入開始日-縦軸_アノテーション単位の指標-受入者用.html
45-
│   │   ├── 折れ線-横軸_受入開始日-縦軸_入力データ単位の指標-受入者用.html
46-
│   │   ├── 累積折れ線-横軸_アノテーション数-受入者用.html
47-
│   │   └── 累積折れ線-横軸_入力データ数-受入者用.html
39+
│   │   ├── 折れ線-横軸_受入開始日-縦軸_生産量単位の指標-受入者用.html
40+
│   │   └── 累積折れ線-横軸_生産量-受入者用.html
4841
│   ├── 折れ線-横軸_教師付開始日-全体.html
4942
│   ├── 折れ線-横軸_日-全体.html
5043
│   ├── 累積折れ線-横軸_日-縦軸_作業時間.html
@@ -54,6 +47,8 @@ Examples
5447
├── 散布図-生産量あたり作業時間と累計作業時間の関係.html
5548
└── 散布図-教師付者の品質と作業量の関係.html
5649
50+
``累積折れ線-横軸_生産量-*.html`` では、生産量種別をセレクトボックスで切り替えられます。
51+
また、``折れ線-横軸_*開始日-縦軸_生産量単位の指標-*者用.html`` でも、生産量種別をセレクトボックスで切り替えられます。
5752

5853

5954
Usage Details
@@ -68,5 +63,3 @@ Usage Details
6863
See also
6964
=================================
7065
* `annofabcli statistics visualize <../statistics/visualize.html>`_
71-
72-

docs/command_reference/statistics/visualize.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -283,9 +283,9 @@ CSVには以下の列が存在している必要があります。
283283
├── project_info.json
284284
├── line-graph
285285
│   ├── 教師付者用
286-
│   │   └── 累積折れ線-横軸_アノテーション数-教師付者用.html
286+
│   │   └── 累積折れ線-横軸_生産量-教師付者用.html
287287
│   ├── 受入者用
288-
│   │   └── 累積折れ線-横軸_アノテーション数-受入者用.html
288+
│   │   └── 累積折れ線-横軸_生産量-受入者用.html
289289
│   ├── 折れ線-横軸_教師付開始日-全体.html
290290
│   ├── 折れ線-横軸_日-全体.html
291291
│   ├── 累積折れ線-横軸_日-縦軸_作業時間.html
@@ -321,8 +321,8 @@ CSVには以下の列が存在している必要があります。
321321
visualize_output_rst/折れ線-横軸_日-全体_html.rst
322322
visualize_output_rst/累積折れ線-横軸_日-全体_html.rst
323323
visualize_output_rst/折れ線-横軸_教師付開始日-全体_html.rst
324-
visualize_output_rst/累積折れ線-横軸_アノテーション数-phase者用_html.rst
325-
visualize_output_rst/折れ線-横軸_教師付開始日-縦軸_アノテーション単位の指標-phase用.html
324+
visualize_output_rst/累積折れ線-横軸_生産量-phase者用_html.rst
325+
visualize_output_rst/折れ線-横軸_phase開始日-縦軸_生産量単位の指標-phase者用_html.rst
326326
visualize_output_rst/累積折れ線-横軸_日-縦軸_作業時間_html.rst
327327

328328
visualize_output_rst/散布図-生産量あたり作業時間と品質の関係-教師付者用_html.rst

docs/command_reference/statistics/visualize/out_dir/line-graph/折れ線-横軸_教師付開始日-縦軸_アノテーション単位の指標-教師付者用.html renamed to docs/command_reference/statistics/visualize/out_dir/line-graph/折れ線-横軸_教師付開始日-縦軸_生産量単位の指標-教師付者用.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<html lang="en">
33
<head>
44
<meta charset="utf-8">
5-
<title>折れ線-横軸_教師付開始日-縦軸_アノテーション単位の指標-教師付者用</title>
5+
<title>折れ線-横軸_教師付開始日-縦軸_生産量単位の指標-教師付者用</title>
66
<style>
77
html, body {
88
box-sizing: border-box;

docs/command_reference/statistics/visualize/out_dir/line-graph/累積折れ線-横軸_アノテーション数-受入者用.html renamed to docs/command_reference/statistics/visualize/out_dir/line-graph/累積折れ線-横軸_生産量-受入者用.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<head>
99

1010
<meta charset="utf-8">
11-
<title>累積折れ線-横軸_アノテーション数-受入者用</title>
11+
<title>累積折れ線-横軸_生産量-受入者用</title>
1212

1313

1414

docs/command_reference/statistics/visualize/out_dir/line-graph/累積折れ線-横軸_アノテーション数-教師付者用.html renamed to docs/command_reference/statistics/visualize/out_dir/line-graph/累積折れ線-横軸_生産量-教師付者用.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<head>
99

1010
<meta charset="utf-8">
11-
<title>累積折れ線-横軸_アノテーション数-教師付者用</title>
11+
<title>累積折れ線-横軸_生産量-教師付者用</title>
1212

1313

1414

0 commit comments

Comments
 (0)