Data Transformations¶
Cute Plot provides comprehensive data transformation capabilities that allow you to scale, offset, and manipulate series data in real-time without modifying the original data.
Transformation System Overview¶
Non-Destructive Transformations¶
All transformations in Cute Plot are non-destructive: - Original data preserved: Source data never modified - Real-time application: Transformations applied during visualization - Reversible: All transformations can be undone - Session persistence: Transformation settings maintained during session
BODMAS Order of Operations¶
Transformations follow standard mathematical order: 1. Multiply first: Scale operations (X multiply, Y multiply) 2. Add second: Offset operations (X add, Y add)
Formula: New_Value = (Original_Value × Multiplier) + Offset
Inline Transformation Controls¶
Access Location¶
Transformation controls appear directly in plot legends: - Per-series controls: Each plotted series has its own transformations - Legend integration: Controls embedded within series legend - Real-time updates: Changes apply immediately to visualization
Control Layout¶
Series Name: Filename - Series
[Rename Series Field]
[Delete Series Button]
────────────────────
Transform:
x: Mult [slider] Add [slider]
y: Mult [slider] Add [slider]
[Reset Transformations Button]
Transformation Types¶
X-Axis Transformations¶
Modify time or horizontal axis values:
X Multiply (Scale)¶
- Range: -10.0 to +10.0
- Default: 1.0 (no scaling)
- Use cases:
- Convert seconds to milliseconds (×1000)
- Convert hours to minutes (×60)
- Reverse time direction (×-1)
X Add (Offset)¶
- Range: -1000.0 to +1000.0
- Default: 0.0 (no offset)
- Use cases:
- Shift time origin
- Synchronize different time bases
- Apply time corrections
Y-Axis Transformations¶
Modify data or vertical axis values:
Y Multiply (Scale)¶
- Range: -10.0 to +10.0
- Default: 1.0 (no scaling)
- Use cases:
- Unit conversions (pu to percentage: ×100)
- Engineering unit changes (V to kV: ×0.001)
- Signal inversion (×-1)
Y Add (Offset)¶
- Range: -1000.0 to +1000.0
- Default: 0.0 (no offset)
- Use cases:
- Remove DC bias
- Apply calibration offsets
- Shift baseline reference
Using Transformation Controls¶
Slider Operation¶
- Drag interaction: Click and drag to adjust values
- Fine control: Slow dragging for precise values
- Real-time feedback: Visual updates during dragging
- Value display: Current values shown on sliders
Value Input¶
- Direct entry: Click slider to enter exact values
- Precision: Support for decimal values
- Range validation: Values constrained to valid ranges
Reset Functionality¶
- Reset button: Restores all transformations to default (1.0, 0.0)
- Complete reset: Resets both X and Y transformations
- Original data restoration: Returns to untransformed original data
Advanced Transformation Features¶
Pyramid Data Transformation¶
Transformations are applied efficiently to all downsampling levels: - Multi-level application: Transformations applied to all pyramid levels - Performance optimization: Avoids regenerating downsampled data - Consistent visualization: Maintains transformation across zoom levels
Original Data Preservation¶
The system maintains multiple data copies: - Original untransformed: True original data from file - Current transformed: Currently visible transformed data - Original pyramid: Original multi-level downsampled data - Transformed pyramid: Transformed multi-level downsampled data
Series Movement with Transformations¶
When moving series between subplots: - Transformation preservation: Current transformation values preserved - Automatic application: Transformations applied to new subplot - State transfer: Complete transformation state moves with series
Common Transformation Examples¶
Unit Conversions¶
Per-Unit to Percentage¶
Seconds to Milliseconds¶
Voltage Scaling (kV to V)¶
Signal Processing¶
DC Bias Removal¶
Signal Inversion¶
Time Synchronization¶
Calibration Corrections¶
Sensor Calibration¶
Time Base Correction¶
Template Integration¶
Transformation in Templates¶
Templates can include transformation specifications:
subplots:
- position: [0, 0]
series_names: ["Voltage*"]
transformations:
- series_pattern: "Voltage*"
operation: "multiply_y"
value: 100.0 # Convert to percentage
- series_pattern: "Time*"
operation: "add_x"
value: -1.0 # Shift time origin
Automatic Application¶
- Template-based: Transformations applied automatically when using templates
- Pattern matching: Transformations applied to series matching patterns
- Override capability: Manual adjustments can override template transformations
Performance Considerations¶
Real-Time Updates¶
- Immediate application: Transformations applied instantly
- Viewport refresh: Automatic redraw after transformation changes
- Downsampling integration: Works seamlessly with pyramid downsampling
Memory Efficiency¶
- In-place operations: Transformations applied without data duplication
- Original preservation: Minimal overhead for original data storage
- Pyramid optimization: Efficient transformation of all detail levels
Best Practices¶
Transformation Strategy¶
- Plan ahead: Consider all necessary transformations before starting
- Document changes: Keep track of applied transformations
- Consistent application: Apply similar transformations to related series
Unit Management¶
- Clear labeling: Update axis labels to reflect transformed units
- Consistent units: Ensure all related series use same units
- Documentation: Document unit conversions for reproducibility
Precision Considerations¶
- Avoid extreme values: Very large or small multipliers may cause precision issues
- Order of operations: Remember BODMAS order (multiply then add)
- Validation: Verify transformations produce expected results
Troubleshooting¶
Common Issues¶
Transformations Not Applying¶
- Check values: Verify transformation values are not defaults (1.0, 0.0)
- Slider response: Ensure sliders are responsive to interaction
- Data validity: Confirm series contains valid numeric data
Unexpected Results¶
- BODMAS order: Remember multiply occurs before add
- Value ranges: Check if values are within expected ranges
- Original data: Verify original data is as expected
Performance Issues¶
- Complex transformations: Simplify transformation values if possible
- Multiple series: Limit simultaneous transformations on many series
- Large datasets: Consider working with smaller data subsets
Visual Issues¶
- Axis scaling: Y-axis may need manual adjustment after transformation
- Display refresh: Click in plot area to force refresh if needed
- Zoom reset: Use zoom fit to see full transformed data range
Integration with Analysis¶
Query Analysis with Transformations¶
- Transformed data analysis: Queries analyze transformed values
- Consistent results: Query results reflect current transformations
- Original vs transformed: Can analyze both original and transformed data
Annotation Compatibility¶
- Position tracking: Annotations track with transformed coordinates
- Value references: Annotation values reflect transformed data
- Intersection detection: Works correctly with transformed data
Advanced Use Cases¶
Multi-Signal Normalization¶
Normalize multiple signals to common scale:
# Example: Normalize three voltage signals to 0-1 range
Signal 1: Y_mult = 1/Vmax1, Y_add = -Vmin1/Vmax1
Signal 2: Y_mult = 1/Vmax2, Y_add = -Vmin2/Vmax2
Signal 3: Y_mult = 1/Vmax3, Y_add = -Vmin3/Vmax3
Phase Alignment¶
Align signals with different time bases:
# Example: Align three signals in time
Signal 1: X_add = 0.0 (reference)
Signal 2: X_add = -0.05 (5ms earlier)
Signal 3: X_add = +0.12 (12ms later)
Engineering Unit Standardization¶
Convert all measurements to standard engineering units:
# Power system example:
Voltage (kV): Y_mult = 1.0, Y_add = 0.0 (already in kV)
Current (A): Y_mult = 0.001, Y_add = 0.0 (A to kA)
Power (MW): Y_mult = 1.0, Y_add = 0.0 (already in MW)
Next Steps¶
Master data transformations and then explore: 1. Advanced Configuration 2. Developer Guide 3. Quick Start Guide
Transformation tip: Remember the BODMAS order - multiply first, then add. Use reset button to quickly return to original data