Visualization¶
Visualization helpers create interactive Plotly figures from
ModelStatistics objects.
Requires visualization dependencies
Install with: uv add retrocast[viz]
Single Model Diagnostics¶
Plot model performance
from retrocast.visualization import plot_diagnostics
fig = plot_diagnostics(stats)
fig.show()
fig.write_html("model_diagnostics.html")
Multi-Model Comparison¶
Compare multiple models
from retrocast.visualization import plot_comparison
fig = plot_comparison(
models_stats=[stats_a, stats_b, stats_c],
metric_type="Top-K",
k=1,
)
fig.show()
Metric types include "Solvability", "Top-K", and "GT-Rank".
Custom Plots¶
Access raw data for custom plots
import plotly.graph_objects as go
lengths = sorted(stats.solvability.by_group.keys())
values = [stats.solvability.by_group[length].value for length in lengths]
ci_lower = [stats.solvability.by_group[length].ci_lower for length in lengths]
ci_upper = [stats.solvability.by_group[length].ci_upper for length in lengths]
fig = go.Figure()
fig.add_trace(
go.Scatter(
x=lengths,
y=values,
error_y={
"type": "data",
"symmetric": False,
"array": [upper - value for upper, value in zip(ci_upper, values, strict=True)],
"arrayminus": [value - lower for value, lower in zip(values, ci_lower, strict=True)],
},
mode="lines+markers",
name="Solvability",
)
)
fig.show()