CyxWiz LogoCyxWiz
DocsVisualization

Visualization Tools

Comprehensive plotting and visualization tools powered by ImPlot for real-time data exploration and analysis.

Overview

The Visualization tools provide:

  • 2D Plotting - Line, scatter, bar, histogram
  • Statistical Plots - Box plots, violin plots, heatmaps
  • Training Visualization - Loss curves, metrics, learning rates
  • 3D Visualization - Surface plots, point clouds
  • Interactive Features - Zoom, pan, tooltips, data selection

Chart Types

Line Plot
import pycyxwiz.plot as plt

# Simple line plot
plt.line(x, y, label="Training Loss")

# Multiple series
plt.line(epochs, train_loss, label="Train")
plt.line(epochs, val_loss, label="Validation")
plt.legend()
plt.xlabel("Epoch")
plt.ylabel("Loss")
plt.title("Training Progress")
plt.show()
Scatter Plot
# Basic scatter
plt.scatter(x, y)

# With colors and sizes
plt.scatter(x, y, c=labels, s=sizes, cmap='viridis')
plt.colorbar()

# With transparency
plt.scatter(x, y, alpha=0.5)
Bar Chart
# Vertical bars
categories = ['A', 'B', 'C', 'D']
values = [23, 45, 56, 78]
plt.bar(categories, values)

# Horizontal bars
plt.barh(categories, values)

# Grouped bars
plt.bar(x, y1, label='Group 1')
plt.bar(x + width, y2, label='Group 2')
Histogram
# Basic histogram
plt.histogram(data, bins=50)

# With density
plt.histogram(data, bins=50, density=True, alpha=0.7)

# Multiple histograms
plt.histogram(data1, bins=30, alpha=0.5, label='Class A')
plt.histogram(data2, bins=30, alpha=0.5, label='Class B')

Statistical Visualizations

# Box plot
plt.boxplot([data1, data2, data3], labels=['A', 'B', 'C'])

# Violin plot
plt.violinplot([data1, data2, data3])

# Heatmap
plt.imshow(matrix, cmap='viridis', aspect='auto')
plt.colorbar()

# Contour plot
plt.contour(X, Y, Z, levels=20)
plt.contourf(X, Y, Z, levels=20, cmap='coolwarm')

3D Visualization

Surface Plot
import pycyxwiz.plot as plt

# Create meshgrid
X, Y = plt.meshgrid(x_range, y_range)
Z = function(X, Y)

# Surface plot
fig = plt.figure()
ax = fig.add_subplot(projection='3d')
ax.plot_surface(X, Y, Z, cmap='viridis')
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()
3D Scatter
# 3D scatter plot (e.g., PCA visualization)
fig = plt.figure()
ax = fig.add_subplot(projection='3d')
ax.scatter(
    pca_data[:, 0],
    pca_data[:, 1],
    pca_data[:, 2],
    c=labels,
    cmap='tab10'
)
ax.set_xlabel('PC1')
ax.set_ylabel('PC2')
ax.set_zlabel('PC3')
plt.show()

Interactive Features

FeatureDescriptionShortcut
ZoomScroll wheel or drag boxScroll / Shift+Drag
PanClick and dragMiddle Mouse
ResetDouble-clickDouble-click
TooltipHover over data pointMouse hover
SelectDrag to select regionCtrl+Drag
ExportSave current viewCtrl+S

Real-Time Training Visualization

import pycyxwiz.plotting as cxplt

# Create a training monitor
monitor = cxplt.TrainingMonitor()

# During training
for epoch in range(epochs):
    loss = train_epoch()
    acc = validate()

    monitor.log('loss', loss, epoch)
    monitor.log('accuracy', acc, epoch)
    monitor.update()  # Refresh plots

# Save plots
monitor.save('training_results.png')

Training Visualization Presets

# Loss and accuracy curves
cxplt.training_curves(
    train_loss=train_losses,
    val_loss=val_losses,
    train_acc=train_accs,
    val_acc=val_accs
)

# Learning rate schedule
cxplt.lr_schedule(lr_history, warmup_steps=1000)

# Gradient distribution
cxplt.gradient_histogram(model.parameters())

# Confusion matrix
cxplt.confusion_matrix(y_true, y_pred, class_names)

# t-SNE/UMAP embeddings
cxplt.embeddings_2d(features, labels, method='tsne')

Export Options

FormatQualityUse Case
PNGHighPublications, reports
SVGVectorScalable graphics
PDFVectorDocuments
HTMLInteractiveWeb embedding
CSVData onlyFurther analysis