Source code for portfolio_toolkit.plot.scatter_plot_data

from dataclasses import dataclass, field
from typing import List, Optional

from .plot_base import PlotBase


[docs] @dataclass class ScatterPlotData(PlotBase): """Data structure for scatter plots""" x_data: List[float] = field(default_factory=list) y_data: List[float] = field(default_factory=list) labels: Optional[List[str]] = None xlabel: str = "X Axis" ylabel: str = "Y Axis" colors: Optional[List[str]] = None sizes: Optional[List[float]] = None alpha: float = 0.7
[docs] def get_plot_type(self) -> str: return "scatter"
[docs] def validate(self) -> bool: """Validate that data is consistent""" if len(self.x_data) != len(self.y_data): raise ValueError("X and Y data must have the same length") if self.labels and len(self.labels) != len(self.x_data): raise ValueError("Labels must match data length") return True