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']}")

Continue Learning

Next Topics

Previous Topics