Skip to content
v0.2.1

Plotly

class Plotly(Visualization):

Plotly visualization.

This visualization wraps a Plotly Figure. The figure is stored internally as a private attribute and is exposed through the figure property.

The JSON-serializable representation is provided by the computed data field, which serializes the figure to Plotly JSON.

Attributes:

  • type Literal['plotly'] — Fixed discriminator "plotly".
  • figure Figure — Wrapped Plotly figure (available as a property).
Source
class Plotly(Visualization):
"""Plotly visualization.
This visualization wraps a Plotly `Figure`. The figure is stored internally as a
private attribute and is exposed through the `figure` property.
The JSON-serializable representation is provided by the computed `data` field,
which serializes the figure to Plotly JSON.
Attributes:
type: Fixed discriminator `"plotly"`.
figure: Wrapped Plotly figure (available as a property).
Notes:
The figure is stored in a Pydantic private attribute (`_figure`).
The `data` field is computed from `figure` using Plotly JSON serialization.
"""
type: Literal["plotly"] = "plotly"
_figure: Figure = PrivateAttr()
def __init__(self, figure: Figure, **data):
super().__init__(**data)
self._figure = figure
@property
def figure(self) -> Figure:
return self._figure
@figure.setter
def figure(self, value: Figure):
self._figure = value
# TODO: Make this better it crashes with plotly_json_dump
@computed_field()
@property
def data(self) -> dict[str, Any]:
json_string = cast(str, pio.to_json(self._figure, validate=False))
return json.loads(json_string)