Results Panel
Visualize simulation results with plots, charts, and tables
🚧
Under Construction
This tutorial is currently being developed and will be available soon.
The Results panel provides powerful visualization tools for analyzing simulation data. Send plots, charts, and tables from Python to the frontend in real-time.
Plot Types
Line Plot
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
server.results.plot(
x, y,
title="Sine Wave",
xlabel="Time (s)",
ylabel="Amplitude"
)Bar Chart
categories = ['A', 'B', 'C', 'D']
values = [45, 38, 52, 41]
server.results.bar(
categories, values,
title="Performance",
ylabel="Score"
)Scatter Plot
x = np.random.randn(100)
y = 2*x + np.random.randn(100)
server.results.scatter(
x, y,
title="Correlation",
xlabel="X",
ylabel="Y"
)Heatmap
heatmap = np.random.randn(20, 30)
server.results.imshow(
heatmap,
title="2D Field",
xlabel="X",
ylabel="Y"
)Data Table
table_data = {
'Model': ['ResNet', 'VGG', 'MobileNet'],
'Accuracy': [0.945, 0.923, 0.887],
'Speed (ms)': [12.3, 18.7, 8.2]
}
server.results.table(
table_data,
title="Model Comparison"
)Version Control & Tags
Save and organize multiple result sets with versioning and color-coded tags.
Basic Usage
# Create plots
server.results.plot(epochs, train_loss, title="Training Loss")
server.results.bar(['Acc', 'Prec'], [0.92, 0.89])
# Commit with message and tag
server.results.commit(
message="Training Epoch 5",
tag="train",
tag_color="#0066CC", # Optional custom color
clear_after=True # Clear plots after commit
)Incremental Updates
# Add first plot
server.results.plot(x, y1, title="Signal 1")
server.results.commit(
message="Step 1",
tag="analysis",
clear_after=False # Keep plots
)
# Add second plot
server.results.plot(x, y2, title="Signal 2")
server.results.commit(
message="Step 2 - Both signals",
tag="analysis",
clear_after=True # Now clear
)Common Tags
- • train - Training
- • val - Validation
- • test - Testing
- • baseline - Baseline
- • best - Best results
Features
- • Auto-generated colors
- • Version history
- • Comparison view
- • Export to images
Management
- • Clear current plots
- • Load previous version
- • Delete versions
- • Filter by tag
Complete Example
import numpy as np
import time
# Training loop simulation
for epoch in range(1, 6):
server.results.clear()
# Generate training data
train_loss = np.exp(-epoch * 0.5) + np.random.normal(0, 0.02, 10)
server.results.plot(
range(1, 11),
train_loss,
title=f"Epoch {epoch} Training Loss",
xlabel="Batch",
ylabel="Loss"
)
# Model metrics
metrics = {
'Accuracy': 0.7 + epoch * 0.08,
'Precision': 0.65 + epoch * 0.09,
'Recall': 0.68 + epoch * 0.07
}
server.results.bar(
list(metrics.keys()),
list(metrics.values()),
title=f"Epoch {epoch} Metrics",
ylabel="Score"
)
# Commit with appropriate tag
if epoch == 5:
server.results.commit(
message=f"Epoch {epoch} - Best Model",
tag="best",
tag_color="#FFD700"
)
else:
server.results.commit(
message=f"Epoch {epoch}",
tag="train"
)
time.sleep(0.5)
# Get version history
versions = server.results.get_all_versions()
for v in versions:
print(f"Version {v['version']}: {v['message']}")