tobii_pytracker.analyze.FocusMapAnalyzer
- class tobii_pytracker.analyze.FocusMapAnalyzer(output_folder: Path)
Focus Map Analyzer — shows areas NOT looked at (inverted heatmap).
- API mirrors HeatmapAnalyzer:
analyze(background_data: pd.DataFrame, per: str = “global”) -> pd.DataFrame
plot_analysis(background_data: pd.DataFrame, screenshot_path: Path, title: Optional[str]=None, …) <- signature matches HeatmapAnalyzer.plot_analysis exactly.
- Required columns in background_data:
‘avg_gaze_x’, ‘avg_gaze_y’ (centered coords)
‘set_name’, ‘slide_index’, ‘input_data’ depending on per mode
Methods
__init__(output_folder)analyze(background_data[, per])Compute summary stats similarly to HeatmapAnalyzer but for API consistency.
plot_analysis(background_data, screenshot_path)Plot focus map (inverted heatmap) overlayed over the screenshot.
- analyze(background_data: DataFrame, per: str = 'global') DataFrame
Compute summary stats similarly to HeatmapAnalyzer but for API consistency.
Parameters
- background_datapd.DataFrame
Flattened gaze data.
- perstr
‘global’ | ‘set’ | ‘slide’ (same semantics as HeatmapAnalyzer)
Returns
- pd.DataFrame
Summary with columns [‘avg_gaze_x’,’avg_gaze_y’,’gaze_count’] and grouping keys when appropriate.
- plot_analysis(background_data: DataFrame, screenshot_path: Path, title: str | None = None, flip_y: bool = True, blur_sigma: float = 3.0, bins: int = 100, cmap: str = 'hot', alpha: float = 0.6, show: bool = True, save_path: Path | None = None)
Plot focus map (inverted heatmap) overlayed over the screenshot. Only the “hot” parts (unseen areas) are visible — transparent elsewhere. Signature matches HeatmapAnalyzer.plot_analysis.