This document specifies the Application Programming Interface (API) for the Data Visualization module. The primary purpose of this API is to provide a set of Python functions for generating various types of common plots and visualizations programmatically, primarily using Matplotlib and Seaborn as backend engines.
The API is designed to be straightforward, allowing users to quickly generate visualizations with sensible defaults, while also offering customization options for titles, labels, colors, output paths, and more.
- Ensure the
logging_monitoringmodule is available andsetup_logging()has been called at the application startup (or before using any visualization functions) for consistent logging of visualization activities. - Dependencies such as
matplotlib,seaborn, andnumpymust be installed. Refer topyproject.tomlfor specific versions. It's recommended to use theenvironment_setupmodule or project-level scripts to verify/install dependencies. - Python 3.7+ (or as specified by the project's root
pyproject.toml).
- Data Inputs: Data for plotting (e.g.,
x_data,y_data,values,data) is typically expected as Python lists or NumPy arrays. Specific functions will detail their exact requirements. - Output: Functions can either save the plot to a file (via
output_pathorsave_path) and/or display it interactively (viashow_plotinPlotConfig). By default, plots are shown but not saved unless a path is specified. - Return Values: The advanced convenience functions (
create_line_plot,create_scatter_plot,create_bar_chart,create_histogram,create_heatmap_advanced,create_dashboard) returnplt.Figureobjects. The basic chart module functions (create_heatmap,create_pie_chart,create_box_plot,create_area_chart) returnNone. - Logging: All public API functions integrate with the
logging_monitoringmodule to log key actions, parameters, and any errors encountered. - Customization: All advanced functions accept a
PlotConfigdataclass for style, palette, figure size, and other settings. Additional Matplotlib/Seaborn kwargs are forwarded via**kwargs.
All plotting functions are Python functions importable from codomyrmex.data_visualization. For example: from codomyrmex.data_visualization import create_line_plot.
When the advanced plotter engine is available (default), this is an alias for create_advanced_line_plot.
- Description: Generates a line plot using the
AdvancedPlotter. - Path:
from codomyrmex.data_visualization import create_line_plot - Parameters/Arguments:
x_data(list): X-axis data values.y_data(list): Y-axis data values. Must match length ofx_data.title(str, optional): Plot title. Default:"".xlabel(str, optional): X-axis label. Default:"".ylabel(str, optional): Y-axis label. Default:"".config(PlotConfig, optional): Plot configuration. Default:None(uses defaults).save_path(str, optional): File path to save the plot. Default:None.**kwargs: Forwarded toAdvancedPlotter.plot_line()(e.g.,label,color,linewidth,linestyle,marker,markersize,alpha).
- Returns/Response:
plt.Figureobject.
When the advanced plotter engine is available (default), this is an alias for create_advanced_scatter_plot.
- Description: Generates a scatter plot using the
AdvancedPlotter. - Path:
from codomyrmex.data_visualization import create_scatter_plot - Parameters/Arguments:
x_data(list): X-axis data values.y_data(list): Y-axis data values. Must match length ofx_data.title(str, optional): Plot title. Default:"".xlabel(str, optional): X-axis label. Default:"".ylabel(str, optional): Y-axis label. Default:"".config(PlotConfig, optional): Plot configuration. Default:None.**kwargs: Forwarded toAdvancedPlotter.plot_scatter()(e.g.,label,color,size,alpha,marker).
- Returns/Response:
plt.Figureobject.
When the advanced plotter engine is available (default), this is an alias for create_advanced_bar_chart.
- Description: Generates a bar chart using the
AdvancedPlotter. - Path:
from codomyrmex.data_visualization import create_bar_chart - Parameters/Arguments:
x_data(list): Category names or x-axis values.y_data(list): Numerical values corresponding to each category.title(str, optional): Chart title. Default:"".xlabel(str, optional): X-axis label. Default:"".ylabel(str, optional): Y-axis label. Default:"".config(PlotConfig, optional): Plot configuration. Default:None.save_path(str, optional): File path to save the chart. Default:None.**kwargs: Forwarded toAdvancedPlotter.plot_bar()(e.g.,label,color,alpha,width,orientation).
- Returns/Response:
plt.Figureobject.
When the advanced plotter engine is available (default), this is an alias for create_advanced_histogram.
- Description: Generates a histogram using the
AdvancedPlotter. - Path:
from codomyrmex.data_visualization import create_histogram - Parameters/Arguments:
data(list): Numerical values from which to generate the histogram.title(str, optional): Histogram title. Default:"".xlabel(str, optional): X-axis label. Default:"".ylabel(str, optional): Y-axis label. Default:"".config(PlotConfig, optional): Plot configuration. Default:None.**kwargs: Forwarded toAdvancedPlotter.plot_histogram()(e.g.,bins,label,color,alpha,density,cumulative).
- Returns/Response:
plt.Figureobject.
Available from the basic charts module (fallback when advanced plotter handles other chart types).
- Description: Generates a pie chart to show proportions.
- Path:
from codomyrmex.data_visualization import create_pie_chart - Parameters/Arguments:
labels(list of str): Labels for each slice of the pie.sizes(list or np.ndarray): Numerical values representing each slice size. Values should be positive.title(str, optional): Pie chart title. Default:"Pie Chart".output_path(str, optional): File path to save the chart. Default:None.show_plot(bool, optional): IfTrue, displays the chart. Default:False.autopct(str or function, optional): Label format for wedges. Default:'%1.1f%%'.startangle(float, optional): Rotation offset in degrees. Default:90.explode(list of float, optional): Offset fraction per slice. Default:None.colors(list of str, optional): Color per slice. Default:None(Matplotlib default).
- Returns/Response: None.
From the basic charts module. For an advanced version, see create_heatmap_advanced (alias for create_advanced_heatmap).
- Description: Generates a heatmap from a 2D data array using Seaborn.
- Path:
from codomyrmex.data_visualization import create_heatmap - Parameters/Arguments:
data(2D list or 2D np.ndarray): The 2D data to visualize.x_labels(list of str, optional): Column labels. Default:None.y_labels(list of str, optional): Row labels. Default:None.title(str, optional): Heatmap title. Default:"Heatmap".x_label(str, optional): X-axis label. Default:None.y_label(str, optional): Y-axis label. Default:None.cmap(str, optional): Matplotlib colormap name. Default:"viridis".colorbar_label(str, optional): Colorbar label. Default:None.output_path(str, optional): File path to save. Default:None.show_plot(bool, optional): IfTrue, displays the plot. Default:False.annot(bool or 2D array-like, optional): Annotate cells. Default:False.fmt(str, optional): Annotation format. Default:".2f".linewidths(float, optional): Cell divider line width. Default:0.linecolor(str, optional): Cell divider line color. Default:'white'.
- Returns/Response: None.
- Description: Generates a box plot for visualizing data distribution.
- Path:
from codomyrmex.data_visualization import create_box_plot - Parameters/Arguments: Depends on the
BoxPlotclass from the basic charts module. Accepts data, labels, title, output_path, and show_plot parameters. - Returns/Response: None.
- Description: Generates an area chart (filled line plot).
- Path:
from codomyrmex.data_visualization import create_area_chart - Parameters/Arguments: Depends on the
AreaChartclass from the basic charts module. Accepts x_data, y_data, title, output_path, and show_plot parameters. - Returns/Response: None.
The AdvancedPlotter class provides a stateful, composable plotting API built on Matplotlib and Seaborn.
from codomyrmex.data_visualization import AdvancedPlotter, PlotConfig
plotter = AdvancedPlotter(config=PlotConfig(title="My Chart", style=ChartStyle.WHITEGRID))
plotter.plot_line([1, 2, 3], [4, 5, 6], label="Series A")
fig = plotter.finalize_plot(save_path="output.png")class AdvancedPlotter:
def __init__(self, config: PlotConfig = None): ...config(PlotConfig, optional): Plot configuration. Default:PlotConfig()with default values.
| Method | Returns | Description |
|---|---|---|
create_figure(subplots=(1,1), **kwargs) |
tuple[Figure, Axes] |
Create a new figure with optional subplots |
plot_line(x_data, y_data, label="", color=None, linewidth=2.0, linestyle="-", marker=None, markersize=6.0, alpha=1.0, **kwargs) |
Line2D |
Add a line to the current axes |
plot_scatter(x_data, y_data, label="", color=None, size=50, alpha=0.7, marker="o", **kwargs) |
PathCollection |
Add a scatter plot |
plot_bar(x_data, y_data, label="", color=None, alpha=0.8, width=0.8, orientation="vertical", **kwargs) |
BarContainer |
Add a bar chart |
plot_histogram(data, bins=30, label="", color=None, alpha=0.7, density=False, cumulative=False, **kwargs) |
tuple[counts, bin_edges, patches] |
Add a histogram |
plot_heatmap(data, x_labels=None, y_labels=None, cmap="viridis", annot=False, fmt=".2f", cbar=True, **kwargs) |
AxesImage |
Add a heatmap (uses Seaborn) |
plot_box(data, labels=None, color=None, notch=False, patch_artist=True, **kwargs) |
dict[str, Any] |
Add a box plot |
plot_violin(data, labels=None, color=None, alpha=0.7, **kwargs) |
list[Polygon] |
Add a violin plot (uses Seaborn) |
plot_correlation(data, method="pearson", cmap="coolwarm", annot=True, fmt=".2f", **kwargs) |
AxesImage |
Add a correlation heatmap |
create_dashboard(datasets, layout=(2,2), title="Dashboard", **kwargs) |
Figure |
Create a multi-panel dashboard from Dataset objects |
finalize_plot(title=None, xlabel=None, ylabel=None, legend=None, grid=None, save_path=None) |
Figure |
Apply labels/legend/grid, optionally save and show |
save_plot(path, format=None, dpi=None, bbox_inches=None, transparent=None) |
bool |
Save the current figure to a file |
clear_figures() |
None |
Close and clear all tracked figures from memory |
Returns list of available chart style values (e.g., ["default", "minimal", "dark", ...]).
Returns list of available color palette values (e.g., ["default", "viridis", "plasma", ...]).
Returns list of available plot type values (e.g., ["line", "scatter", "bar", ...]).
Available plot types: LINE, SCATTER, BAR, HISTOGRAM, PIE, HEATMAP, BOX, VIOLIN, DENSITY, CORRELATION, TIMESERIES, DASHBOARD, INTERACTIVE.
Chart styling options: DEFAULT, MINIMAL, DARK, WHITE, TICKS, DARKGRID, WHITEGRID.
Color palette options: DEFAULT, VIRIDIS, PLASMA, INFERNO, MAGMA, COOLWARM, RAINBOW, PASTEL, DARK, BRIGHT.
@dataclass
class PlotConfig:
title: str = ""
xlabel: str = ""
ylabel: str = ""
figsize: tuple[int, int] = (10, 6)
dpi: int = 100
style: ChartStyle = ChartStyle.DEFAULT
palette: ColorPalette = ColorPalette.DEFAULT
grid: bool = True
legend: bool = True
tight_layout: bool = True
save_format: str = "png"
save_dpi: int = 300
show_plot: bool = True
transparent: bool = False
bbox_inches: str = "tight"@dataclass
class DataPoint:
x: float | int | str | datetime
y: float | int | str | datetime
label: str | None = None
color: str | None = None
size: float | None = None
alpha: float = 1.0@dataclass
class Dataset:
name: str
data: list[DataPoint]
plot_type: PlotType
color: str | None = None
label: str | None = None
alpha: float = 1.0
linewidth: float = 2.0
markersize: float = 6.0The module now includes specialized functions for visualizing Git repositories and operations. These functions integrate with the git_operations module when available.
- Description: Creates a comprehensive Git repository analysis with multiple visualization outputs.
- Path:
from codomyrmex.data_visualization import visualize_git_repository - Parameters/Arguments:
repository_path(str): Path to the Git repository to analyze.output_dir(str, optional): Directory to save all output files. Default:"./git_analysis".report_name(str, optional): Base name for output files. Default: repository name.
- Returns/Response: Dictionary with status information and file paths for created visualizations.
- Description: Creates a PNG visualization of Git branch tree structure.
- Path:
from codomyrmex.data_visualization import create_git_tree_png - Parameters/Arguments:
repository_path(str, optional): Path to Git repository. If None, uses sample data.branches(list of dict, optional): Branch information dictionaries.commits(list of dict, optional): Commit information dictionaries.output_path(str, optional): File path to save PNG. Default:"git_tree.png".title(str, optional): Plot title. Default:"Git Tree Visualization".
- Returns/Response: Boolean indicating success.
- Description: Creates a Mermaid diagram of Git branch tree structure.
- Path:
from codomyrmex.data_visualization import create_git_tree_mermaid - Parameters/Arguments:
repository_path(str, optional): Path to Git repository. If None, uses sample data.branches(list of dict, optional): Branch information dictionaries.commits(list of dict, optional): Commit information dictionaries.output_path(str, optional): File path to save Mermaid file. Default:"git_tree.mmd".title(str, optional): Diagram title. Default:"Git Tree Diagram".
- Returns/Response: String containing Mermaid diagram content.
The module includes comprehensive Mermaid diagram generation capabilities for various Git-related visualizations.
- Description: Creates a Mermaid gitgraph diagram showing branch structure and commits.
- Path:
from codomyrmex.data_visualization import create_git_branch_diagram - Parameters/Arguments:
branches(list of dict, optional): Branch information with names and creation dates.commits(list of dict, optional): Commit information with hashes, messages, and dates.title(str, optional): Diagram title. Default:"Git Branch Diagram".output_path(str, optional): File path to save Mermaid file. Default: None.
- Returns/Response: String containing Mermaid gitgraph content.
- Description: Creates a Mermaid flowchart diagram showing Git workflow steps.
- Path:
from codomyrmex.data_visualization import create_git_workflow_diagram - Parameters/Arguments:
workflow_steps(list of dict, optional): Workflow step information with names, types, and descriptions.title(str, optional): Diagram title. Default:"Git Workflow".output_path(str, optional): File path to save Mermaid file. Default: None.
- Returns/Response: String containing Mermaid flowchart content.
- Description: Creates a Mermaid graph diagram showing repository directory structure.
- Path:
from codomyrmex.data_visualization import create_repository_structure_diagram - Parameters/Arguments:
repo_structure(dict, optional): Dictionary representing directory structure.title(str, optional): Diagram title. Default:"Repository Structure".output_path(str, optional): File path to save Mermaid file. Default: None.
- Returns/Response: String containing Mermaid graph content.
- Description: Creates a Mermaid timeline diagram showing commit history over time.
- Path:
from codomyrmex.data_visualization import create_commit_timeline_diagram - Parameters/Arguments:
commits(list of dict, optional): Commit information with dates and messages.title(str, optional): Diagram title. Default:"Commit Timeline".output_path(str, optional): File path to save Mermaid file. Default: None.
- Returns/Response: String containing Mermaid timeline content.
All plotting functions use the logging_monitoring module for logging. Ensure setup_logging() is called before using these functions.
Use the environment_setup module to check/install dependencies and set up environment variables as needed.
This module adheres to the Codomyrmex project's overall semantic versioning strategy.
- Major version changes (X.y.z) will indicate backward-incompatible API changes to existing plotting functions.
- Minor version changes (x.Y.z) will include new plotting functions/features or significant enhancements to existing ones that are backward-compatible.
- Patch version changes (x.y.Z) will cover bug fixes, documentation updates, or minor backward-compatible tweaks to plot appearance or behavior.
All significant changes, new features, and breaking changes will be documented in the module's CHANGELOG.md.
- Parent: Project Overview
- Module Index: All Agents
- Documentation: Reference Guides
- Home: Root README