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
| Feature | Description | Shortcut |
|---|---|---|
| Zoom | Scroll wheel or drag box | Scroll / Shift+Drag |
| Pan | Click and drag | Middle Mouse |
| Reset | Double-click | Double-click |
| Tooltip | Hover over data point | Mouse hover |
| Select | Drag to select region | Ctrl+Drag |
| Export | Save current view | Ctrl+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
| Format | Quality | Use Case |
|---|---|---|
| PNG | High | Publications, reports |
| SVG | Vector | Scalable graphics |
| Vector | Documents | |
| HTML | Interactive | Web embedding |
| CSV | Data only | Further analysis |