Visualization#
Visualization tools help you understand test function landscapes through surface plots, contour plots, and interactive visualizations.
Installation#
pip install surfaces[viz]
This installs:
plotly: Interactive plots and 3D surfaces
matplotlib: Static plots and publication-quality figures
What You Get#
Surface Plots#
3D visualization of 2D test functions:
from surfaces.test_functions.algebraic import AckleyFunction
from surfaces.visualization import plot_surface
func = AckleyFunction()
fig = plot_surface(func)
fig.show()
Contour Plots#
2D contour visualization:
from surfaces.test_functions.algebraic import RastriginFunction
from surfaces.visualization import plot_contour
func = RastriginFunction(n_dim=2)
fig = plot_contour(func)
fig.show()
Interactive Features#
Plotly-based visualizations are interactive:
Rotate: Click and drag to rotate 3D surfaces
Zoom: Scroll to zoom in/out
Pan: Shift + drag to pan
Hover: See exact values at any point
Usage Examples#
Basic Surface Plot#
from surfaces.test_functions.algebraic import HimmelblausFunction
from surfaces.visualization import plot_surface
func = HimmelblausFunction()
# Create interactive 3D surface
fig = plot_surface(
func,
title="Himmelblau's Function",
resolution=100
)
fig.show()
Save to File#
from surfaces.visualization import plot_surface, plot_contour
# Save as HTML (interactive)
fig = plot_surface(func)
fig.write_html("surface.html")
# Save as PNG (static)
fig.write_image("surface.png")
Multiple Functions#
from surfaces.test_functions.algebraic import (
SphereFunction,
RastriginFunction,
AckleyFunction
)
from surfaces.visualization import plot_surface
functions = [
SphereFunction(n_dim=2),
RastriginFunction(n_dim=2),
AckleyFunction()
]
for func in functions:
fig = plot_surface(func, title=func.__class__.__name__)
fig.write_html(f"{func.__class__.__name__.lower()}.html")
Matplotlib Backend#
For publication-quality static figures:
import matplotlib.pyplot as plt
from surfaces.test_functions.algebraic import BealeFunction
from surfaces.visualization import plot_contour_matplotlib
func = BealeFunction()
fig, ax = plot_contour_matplotlib(func)
plt.savefig("beale_contour.pdf", dpi=300)
Visualization in Documentation#
The Surfaces documentation includes a function_gallery with pre-generated visualizations of all 2D test functions.
Dependencies Note#
Plotly#
Plotly is the primary visualization library. It provides:
Interactive 3D surfaces
WebGL rendering for performance
HTML export for sharing
Matplotlib#
Matplotlib is optional but useful for:
Publication-quality figures
PDF/EPS export
Custom styling
Kaleido#
For static image export (PNG, PDF), you may need kaleido:
pip install kaleido
Next Steps#
Visualization - Visualization guide
/examples/visualization - Visualization examples
/api_reference/visualization - API reference