build_tools.syllable_analysis.plotting.static
Static matplotlib visualizations for analysis tools.
This module provides matplotlib-based static plotting functions for dimensionality reduction visualizations. Functions create publication-quality PNG outputs with comprehensive metadata.
Usage Example
import numpy as np
from pathlib import Path
from build_tools.syllable_analysis.plotting.static import (
create_tsne_scatter,
save_static_plot,
create_metadata_text
)
# Create visualization
tsne_coords = np.array([[...], [...]]) # From t-SNE
frequencies = [10, 25, 15, ...]
fig = create_tsne_scatter(tsne_coords, frequencies)
# Save to PNG
output_path = Path("_working/output.png")
save_static_plot(fig, output_path, dpi=300)
# Generate metadata
metadata = create_metadata_text(
output_filename="output.png",
dpi=300,
perplexity=30,
random_state=42,
processing_time=2.5
)
Path("_working/output_meta.txt").write_text(metadata)
Functions
|
Create static matplotlib scatter plot of t-SNE coordinates. |
|
Save matplotlib figure to PNG file. |
|
Generate formatted metadata text for static visualization. |
Module Contents
- build_tools.syllable_analysis.plotting.static.create_tsne_scatter(tsne_coords, frequencies, title='t-SNE: Feature Signature Space', figsize=DEFAULT_FIGURE_SIZE, cmap=DEFAULT_COLORMAP, alpha=DEFAULT_ALPHA)[source]
Create static matplotlib scatter plot of t-SNE coordinates.
Generates a publication-quality scatter plot showing t-SNE dimensionality reduction results. Points are sized and colored by frequency, with larger and brighter points indicating higher-frequency syllables.
- Parameters:
tsne_coords (numpy.ndarray) – 2D coordinate array of shape (n_samples, 2) from t-SNE reduction
frequencies (List[int]) – Frequency values for each point (used for sizing and coloring)
title (str) – Plot title (default: “t-SNE: Feature Signature Space”)
figsize (Tuple[int, int]) – Figure size in inches as (width, height) (default: (14, 10))
cmap (str) – Matplotlib colormap name (default: “viridis”)
alpha (float) – Point transparency, 0.0=transparent to 1.0=opaque (default: 0.6)
- Returns:
matplotlib Figure object with configured scatter plot
- Raises:
ValueError – If tsne_coords shape is invalid or lengths don’t match
- Return type:
matplotlib.pyplot.Figure
Example
>>> import numpy as np >>> coords = np.random.randn(100, 2) >>> freqs = list(range(1, 101)) >>> fig = create_tsne_scatter(coords, freqs) >>> fig.savefig("output.png", dpi=300) >>> plt.close(fig)
Notes
Point size is proportional to frequency (frequency × 2)
Colorbar is added automatically to show frequency scale
Black edge lines improve visibility of overlapping points
Layout uses tight_layout() for optimal spacing
- build_tools.syllable_analysis.plotting.static.save_static_plot(fig, output_path, dpi=DEFAULT_DPI)[source]
Save matplotlib figure to PNG file.
Saves a matplotlib Figure to a high-resolution PNG file suitable for publication or presentation. Uses tight bounding box to minimize whitespace.
- Parameters:
fig (matplotlib.pyplot.Figure) – Matplotlib Figure object to save
output_path (pathlib.Path) – Output PNG file path (parent directory must exist)
dpi (int) – Resolution in dots per inch (default: 300 for publication quality)
- Raises:
FileNotFoundError – If parent directory doesn’t exist
PermissionError – If file cannot be written
ValueError – If output_path doesn’t end with .png
Example
>>> import matplotlib.pyplot as plt >>> from pathlib import Path >>> fig, ax = plt.subplots() >>> ax.plot([1, 2, 3], [1, 4, 9]) >>> save_static_plot(fig, Path("output.png"), dpi=300) >>> plt.close(fig)
Notes
Uses bbox_inches=’tight’ to remove excess whitespace
Higher DPI values create larger files but better quality
Common DPI values: 150 (screen), 300 (print), 600 (high-quality print)
Figure is NOT automatically closed after saving
- build_tools.syllable_analysis.plotting.static.create_metadata_text(output_filename, dpi, perplexity, random_state, processing_time)[source]
Generate formatted metadata text for static visualization.
Creates a human-readable metadata report describing the visualization parameters, algorithm settings, and interpretation guide. Suitable for saving alongside PNG output files.
- Parameters:
output_filename (str) – Name of the output PNG file (e.g., “20260107_143022.tsne_visualization.png”)
dpi (int) – Resolution used for PNG export
perplexity (int) – t-SNE perplexity parameter used
random_state (int) – Random seed used for reproducibility
processing_time (float) – Total processing time in seconds
- Returns:
Formatted multi-line metadata string ready for file output
- Return type:
Example
>>> metadata = create_metadata_text( ... output_filename="20260107_143022.tsne_visualization.png", ... dpi=300, ... perplexity=30, ... random_state=42, ... processing_time=2.5 ... ) >>> Path("metadata.txt").write_text(metadata)
Notes
Includes timestamp of generation
Documents all algorithm parameters
Provides interpretation guidance
Uses Unicode box-drawing characters for formatting