src.visualization.charts

Chart generation for Share of Search analysis.

Module Contents

class src.visualization.charts.ChartGenerator(theme: str = 'professional', dpi: int = 300)[source]

Generate professional charts for Share of Search analysis.

generate_line_chart(df: pandas.DataFrame, output_path: pathlib.Path, title: str = 'Search Interest Over Time') None[source]

Generate McKinsey-style line chart showing trends over time.

Parameters:
  • df – DataFrame with date, query, value columns

  • output_path – Path to save chart

  • title – Chart title

generate_area_chart(df: pandas.DataFrame, output_path: pathlib.Path, title: str = 'Share of Search Evolution') None[source]

Generate McKinsey-style stacked area chart showing share evolution.

Parameters:
  • df – DataFrame with date, query, share_of_search columns

  • output_path – Path to save chart

  • title – Chart title

generate_bar_chart(metrics_df: pandas.DataFrame, output_path: pathlib.Path, title: str = 'Average Share by Brand') None[source]

Generate McKinsey-style bar chart comparing average shares.

Parameters:
  • metrics_df – DataFrame with query and avg_share columns

  • output_path – Path to save chart

  • title – Chart title

generate_pie_chart(metrics_df: pandas.DataFrame, output_path: pathlib.Path, title: str = 'Current Market Share') None[source]

Generate McKinsey-style pie chart showing current market distribution.

Parameters:
  • metrics_df – DataFrame with query and avg_share columns

  • output_path – Path to save chart

  • title – Chart title

generate_all_charts(df: pandas.DataFrame, metrics_df: pandas.DataFrame, output_dir: pathlib.Path) List[pathlib.Path][source]

Generate all charts.

Parameters:
  • df – Full time series DataFrame

  • metrics_df – Aggregate metrics DataFrame

  • output_dir – Directory to save charts

Returns:

List of generated chart paths