Skip to content

Advanced Configuration

Cute Plot provides extensive configuration options for customizing performance, appearance, analysis settings, and advanced features to suit your specific workflow requirements.

Application Settings

Query Analysis Configuration

Access via SettingsQuery Options to customize data analysis features:

Basic Statistics (Always Enabled)

These core statistics are always calculated during query analysis: - Min/Max: Minimum and maximum values in selection - Mean: Average value - Standard Deviation: Measure of data spread - Count: Number of data points

Advanced Analysis Options (Configurable)

Toggle these features based on your analysis needs:

Signal Characteristics: - Window Width: Time span of selected region - Frequency: Dominant frequency analysis - Ramp Rate: Rate of change calculations - RMS: Root Mean Square values

Dynamic Response Analysis: - Rise Time: Time to reach percentage of final value - Recovery Time: Return to baseline analysis - Settling Time: Stability and settling analysis - Damping Ratio: Oscillation damping characteristics

Advanced Signal Processing: - FFT Analysis: Frequency domain analysis and harmonic content

Performance Configuration

File Loading Thresholds

Control when lazy loading is used:

# Default threshold: 2GB
file_size_threshold = 2000  # MB

# Override in file loaders:
loader.should_use_lazy_loading = True/False

Downsampling Parameters

Configure pyramid downsampling behavior:

# Default settings
downsample_amount = 10        # Target points per detail level
downsample_factor = 4         # Reduction factor between levels
max_screen_density = 4        # Points per screen pixel maximum

Memory Management

# Preview row limits for lazy loading
preview_rows = 200

# Buffer margins for smooth panning (pixels)
pan_margin = 50

Theme and Appearance

Built-in Themes

Access via SettingsTheme:

Dark Theme (Default)

  • Background: Dark color scheme optimized for extended use
  • Contrast: High contrast for data visibility
  • Eye strain: Reduced eye strain in low-light conditions

Light Theme

  • Background: Light color scheme for bright environments
  • Print-friendly: Better for printed outputs
  • Traditional: Classic scientific plotting appearance

Custom Themes

  • Style Editor: Access advanced styling options
  • Color customization: Modify colors for all UI elements
  • Font settings: Adjust fonts, sizes, and weights

Color Palettes

Series Colors (20 Colors)

# Default color palette
_COLORS = [
    (76, 114, 176),    # Blue
    (221, 132, 82),    # Orange  
    (85, 168, 104),    # Green
    (196, 78, 82),     # Red
    (129, 114, 179),   # Purple
    (147, 120, 96),    # Brown
    (218, 139, 195),   # Pink
    (140, 140, 140),   # Gray
    (204, 185, 116),   # Olive
    (100, 181, 205),   # Teal
    # Extended colors...
]

Annotation Colors

Separate color palette for annotations ensures visual distinction from data series.

Development and Debugging

Debug Tools

Access via Settings menu:

Metrics Window

  • Performance monitoring: Real-time FPS, memory usage
  • Render statistics: Frame timing, GPU utilization
  • System information: Hardware and software details

Style Editor

  • Live editing: Modify UI appearance in real-time
  • Component inspection: Examine individual UI elements
  • Theme development: Create custom themes

Debug Inspector

  • Widget hierarchy: Examine UI widget structure
  • Property inspection: View and modify widget properties
  • Event monitoring: Track user interactions and system events

Logger System

  • Multi-level logging: Info, Warning, Error levels
  • Real-time display: Live log updates
  • Session recording: Complete session activity log
  • Export capability: Save logs for analysis

Performance Monitoring

FPS Display

# Enable FPS counter (when available)
fps_bar = dcg.ProgressBar(
    C, value=0.0, overlay="0 FPS", width="0.3*fullx"
)

Memory Tracking

Monitor application memory usage: - RAM consumption: Total memory usage - Data structure sizes: Memory per data component - Garbage collection: Memory cleanup events

Advanced File Handling

Custom File Format Support

Extending File Loaders

Create custom loaders for specialized formats:

from utils.file.base import BaseFileLoader, LoadResult

class CustomLoader(BaseFileLoader):
    def supports_lazy_loading(self) -> bool:
        return True

    def load_normal(self) -> LoadResult:
        # Implementation for normal loading
        pass

    def load_lazy(self) -> LoadResult:
        # Implementation for lazy loading
        pass

# Register new loader
from utils.file import LOADERS
LOADERS['.custom'] = CustomLoader

File Processing Pipeline Customization

Override data processing steps:

# Custom dataframe processing
def custom_process_dataframe(df):
    # Custom column handling
    # Custom data validation
    # Custom type conversions
    return processed_df

Batch Processing Configuration

Multi-File Loading

Configure concurrent file loading:

# Thread pool configuration
max_workers = 8              # Parallel file loading threads
queue_capacity = 100         # Maximum queued files
timeout_seconds = 300        # Loading timeout per file

Progress Tracking

Customize loading progress display:

class CustomProgressTracker:
    def __init__(self, total_files):
        self.total = total_files
        self.completed = 0

    def update_ui(self, completed):
        # Custom progress display
        pass

Template System Configuration

Template Storage Locations

# Default template directory
template_dir = Path.home() / ".cuteplot" / "templates"

# Custom template directories
custom_template_paths = [
    "/shared/team_templates",
    "/project/analysis_templates"
]

Pattern Matching Configuration

# Case sensitivity (default: False)
case_sensitive_matching = False

# Pattern timeout for complex matches
pattern_timeout_ms = 1000

# Maximum pattern recursion depth
max_pattern_depth = 10

Template Validation

# Strict parsing (default: True)
strict_template_parsing = True

# Auto-fix minor template issues
auto_fix_templates = True

# Template version compatibility
supported_template_versions = ["1.0", "1.1"]

Network and Licensing

License Configuration

License system settings:

# License server settings
license_server_url = "https://users.cuteplot.com"
license_timeout_seconds = 10
license_retry_attempts = 3

# Hardware ID generation
include_cpu_info = True
include_disk_info = True
include_network_info = False

Feedback System

# Feedback endpoint
feedback_url = "https://users.cuteplot.com/api/feedback"

# System information collection
collect_system_info = True
collect_hardware_id = True
collect_license_info = True

Environment Variables

Configuration Override

Set environment variables to override defaults:

# File size threshold for lazy loading (MB)
export CUTEPLOT_LAZY_THRESHOLD=1000

# Maximum memory usage (MB)  
export CUTEPLOT_MAX_MEMORY=8192

# Default theme
export CUTEPLOT_THEME=dark

# Debug mode
export CUTEPLOT_DEBUG=true

# Custom template directory
export CUTEPLOT_TEMPLATE_DIR=/custom/templates

Development Variables

# Enable development features
export CUTEPLOT_DEV_MODE=true

# Detailed logging
export CUTEPLOT_LOG_LEVEL=debug

# Performance profiling
export CUTEPLOT_PROFILE=true

System Integration

File Association

Configure file type associations:

# macOS
defaults write com.apple.LaunchServices LSHandlers \
  -array-add '{LSHandlerContentType=public.comma-separated-values;LSHandlerRoleAll=com.cuteplot.app;}'

# Windows (registry entries)
HKEY_CLASSES_ROOT\.csv\shell\open\command
"C:\Program Files\CutePlot\cuteplot.exe" "%1"

Command Line Interface

# Basic usage
cuteplot file1.csv file2.csv

# With template
cuteplot --template analysis.yaml data/*.csv

# Batch mode
cuteplot --batch --output results/ data/*.csv

Configuration Files

Application Configuration

Location: ~/.cuteplot/config.json

{
  "theme": "dark",
  "lazy_loading_threshold_mb": 2000,
  "max_recent_templates": 10,
  "default_query_options": {
    "basic_stats": true,
    "advanced_stats": false,
    "fft_analysis": false
  },
  "performance": {
    "max_memory_mb": 8192,
    "thread_pool_size": 8,
    "downsample_target": 10
  }
}

User Preferences

Location: ~/.cuteplot/preferences.json

{
  "window_geometry": {
    "width": 1200,
    "height": 800,
    "x": 100,
    "y": 100
  },
  "sidebar_width": 250,
  "default_grid": {
    "rows": 1,
    "cols": 1
  },
  "shortcuts": {
    "screenshot": "Ctrl+Shift+S",
    "new_plot": "Ctrl+N"
  }
}

Troubleshooting Configuration

Configuration Reset

Reset to defaults:

# Remove configuration directory
rm -rf ~/.cuteplot/

# Or reset specific files
rm ~/.cuteplot/config.json
rm ~/.cuteplot/preferences.json

Configuration Validation

# Validate configuration on startup
def validate_config():
    # Check file permissions
    # Validate JSON syntax
    # Verify value ranges
    # Report issues
    pass

Common Configuration Issues

  1. File permissions: Ensure write access to config directory
  2. JSON syntax: Validate JSON files for syntax errors
  3. Value ranges: Check numeric values are within valid ranges
  4. Path validation: Verify custom paths exist and are accessible

Performance Tuning

Memory Optimization

# Garbage collection tuning
import gc
gc.set_threshold(700, 10, 10)

# Memory pool pre-allocation
preallocate_memory_mb = 1024

# Data structure optimization
use_memory_mapping = True

Rendering Optimization

# GPU acceleration
enable_gpu_acceleration = True

# Frame rate limiting
target_fps = 60
vsync_enabled = True

# Render quality vs performance
anti_aliasing_quality = "high"  # low, medium, high

Data Processing Optimization

# Parallel processing
max_cpu_cores = os.cpu_count()
use_multiprocessing = True

# Chunk processing for large files
chunk_size_mb = 100
overlap_samples = 1000

Next Steps

Master advanced configuration and then explore: 1. Developer Guide 2. Quick Start Guide 3. API Reference


Configuration tip: Start with default settings and gradually customize based on your specific workflow requirements