Skip to content

pywry.plotly_config

Configuration models for Plotly.js chart customization.


Plotly Configuration

pywry.plotly_config.PlotlyConfig

Bases: BaseModel

Top-level Plotly.js configuration object.

Attributes

model_config class-attribute instance-attribute

model_config = ConfigDict(populate_by_name=True, alias_generator=to_camel, extra='allow')

static_plot class-attribute instance-attribute

static_plot: bool = False

plotly_server_url class-attribute instance-attribute

plotly_server_url: str | None = None

editable class-attribute instance-attribute

editable: bool = False

edits class-attribute instance-attribute

edits: dict[str, bool] | None = None

autosizable class-attribute instance-attribute

autosizable: bool = False

responsive class-attribute instance-attribute

responsive: bool = True

fill_frame class-attribute instance-attribute

fill_frame: bool = False

frame_margins class-attribute instance-attribute

frame_margins: float | int | None = None

scroll_zoom class-attribute instance-attribute

scroll_zoom: bool | Literal['cartesian', 'gl3d', 'geo', 'mapbox'] = False

double_click class-attribute instance-attribute

double_click: Literal['reset+autosize', 'reset', 'autosize', False] = 'reset+autosize'

double_click_delay class-attribute instance-attribute

double_click_delay: int = 300

show_tips class-attribute instance-attribute

show_tips: bool = True

show_axis_drag_handles class-attribute instance-attribute

show_axis_drag_handles: bool = True

show_axis_range_entry_boxes class-attribute instance-attribute

show_axis_range_entry_boxes: bool = True
show_link: bool = False

send_data class-attribute instance-attribute

send_data: bool = True
link_text: str = 'Edit chart'

show_sources class-attribute instance-attribute

show_sources: bool = False

display_mode_bar class-attribute instance-attribute

display_mode_bar: bool | Literal['hover'] = 'hover'
display_logo: bool = Field(default=False, alias='displaylogo')

mode_bar_buttons class-attribute instance-attribute

mode_bar_buttons: list[list[StandardButton | str | ModeBarButton | dict[str, Any]]] | bool | None = Field(default=None, alias='modeBarButtons')

mode_bar_buttons_to_add class-attribute instance-attribute

mode_bar_buttons_to_add: list[ModeBarButton | dict[str, Any]] | None = None

mode_bar_buttons_to_remove class-attribute instance-attribute

mode_bar_buttons_to_remove: list[StandardButton | str] | None = None

watermark class-attribute instance-attribute

watermark: bool = False

locale class-attribute instance-attribute

locale: str | None = None

locales class-attribute instance-attribute

locales: dict[str, Any] | None = None

Mode Bar Configuration

pywry.plotly_config.ModeBarConfig

Bases: BaseModel

Configuration for the mode bar.

Attributes

model_config class-attribute instance-attribute

model_config = ConfigDict(populate_by_name=True, alias_generator=to_camel, extra='allow')

orientation class-attribute instance-attribute

orientation: Literal['v', 'h'] = 'h'

bgcolor class-attribute instance-attribute

bgcolor: str | None = None

color class-attribute instance-attribute

color: str | None = None

active_color class-attribute instance-attribute

active_color: str | None = None

buttons_to_add class-attribute instance-attribute

buttons_to_add: list[ModeBarButton | dict[str, Any]] | None = None

buttons_to_remove class-attribute instance-attribute

buttons_to_remove: list[StandardButton | str] | None = None
add_logo: bool = True

remove class-attribute instance-attribute

remove: list[StandardButton | str] | None = Field(default=None, alias='modeBarButtonsToRemove')

add class-attribute instance-attribute

add: list[ModeBarButton | dict[str, Any]] | None = Field(default=None, alias='modeBarButtonsToAdd')

Mode Bar Button

pywry.plotly_config.ModeBarButton

Bases: BaseModel

Configuration for a custom modebar button.

Attributes

model_config class-attribute instance-attribute

model_config = ConfigDict(populate_by_name=True, alias_generator=to_camel, extra='allow')

name instance-attribute

name: str

title instance-attribute

title: str

icon instance-attribute

icon: SvgIcon | PlotlyIconName | str | dict[str, Any]

click class-attribute instance-attribute

click: str | None = None

attr class-attribute instance-attribute

attr: str | None = None

val class-attribute instance-attribute

val: Any | None = None

toggle class-attribute instance-attribute

toggle: bool | None = None

event class-attribute instance-attribute

event: str | None = None

data class-attribute instance-attribute

data: dict[str, Any] | None = None

Functions

to_js_config

to_js_config() -> dict[str, Any]

Convert to JS-compatible config dict, handling PyWry event logic.


Standard Buttons

pywry.plotly_config.StandardButton

Bases: str, Enum

Standard Plotly modebar buttons.

Attributes

ZOOM_2D class-attribute instance-attribute

ZOOM_2D = 'zoom2d'

PAN_2D class-attribute instance-attribute

PAN_2D = 'pan2d'

SELECT_2D class-attribute instance-attribute

SELECT_2D = 'select2d'

LASSO_2D class-attribute instance-attribute

LASSO_2D = 'lasso2d'

ZOOM_IN_2D class-attribute instance-attribute

ZOOM_IN_2D = 'zoomIn2d'

ZOOM_OUT_2D class-attribute instance-attribute

ZOOM_OUT_2D = 'zoomOut2d'

AUTO_SCALE_2D class-attribute instance-attribute

AUTO_SCALE_2D = 'autoScale2d'

RESET_SCALE_2D class-attribute instance-attribute

RESET_SCALE_2D = 'resetScale2d'

ZOOM_3D class-attribute instance-attribute

ZOOM_3D = 'zoom3d'

PAN_3D class-attribute instance-attribute

PAN_3D = 'pan3d'

ORBIT_ROTATION class-attribute instance-attribute

ORBIT_ROTATION = 'orbitRotation'

TABLE_ROTATION class-attribute instance-attribute

TABLE_ROTATION = 'tableRotation'

HANDLE_DRAG_3D class-attribute instance-attribute

HANDLE_DRAG_3D = 'handleDrag3d'

RESET_CAMERA_DEFAULT_3D class-attribute instance-attribute

RESET_CAMERA_DEFAULT_3D = 'resetCameraDefault3d'

RESET_CAMERA_LAST_SAVE_3D class-attribute instance-attribute

RESET_CAMERA_LAST_SAVE_3D = 'resetCameraLastSave3d'

HOVER_CLOSEST_3D class-attribute instance-attribute

HOVER_CLOSEST_3D = 'hoverClosest3d'

HOVER_CLOSEST_CARTESIAN class-attribute instance-attribute

HOVER_CLOSEST_CARTESIAN = 'hoverClosestCartesian'

HOVER_COMPARE_CARTESIAN class-attribute instance-attribute

HOVER_COMPARE_CARTESIAN = 'hoverCompareCartesian'

ZOOM_IN_GEO class-attribute instance-attribute

ZOOM_IN_GEO = 'zoomInGeo'

ZOOM_OUT_GEO class-attribute instance-attribute

ZOOM_OUT_GEO = 'zoomOutGeo'

RESET_GEO class-attribute instance-attribute

RESET_GEO = 'resetGeo'

HOVER_CLOSEST_GEO class-attribute instance-attribute

HOVER_CLOSEST_GEO = 'hoverClosestGeo'

TO_IMAGE class-attribute instance-attribute

TO_IMAGE = 'toImage'

SEND_DATA_TO_CLOUD class-attribute instance-attribute

SEND_DATA_TO_CLOUD = 'sendDataToCloud'

HOVER_CLOSEST_GL2D class-attribute instance-attribute

HOVER_CLOSEST_GL2D = 'hoverClosestGl2d'

HOVER_CLOSEST_PIE class-attribute instance-attribute

HOVER_CLOSEST_PIE = 'hoverClosestPie'

TOGGLE_HOVER class-attribute instance-attribute

TOGGLE_HOVER = 'toggleHover'

RESET_VIEWS class-attribute instance-attribute

RESET_VIEWS = 'resetViews'

TOGGLE_SPIKELINES class-attribute instance-attribute

TOGGLE_SPIKELINES = 'toggleSpikelines'

RESET_VIEW_MAPBOX class-attribute instance-attribute

RESET_VIEW_MAPBOX = 'resetViewMapbox'

Custom Icons

SVG Icon

pywry.plotly_config.SvgIcon

Bases: BaseModel

Custom icon definition using SVG path or existing Plotly icon.

Attributes
model_config class-attribute instance-attribute
model_config = ConfigDict(populate_by_name=True, alias_generator=to_camel, extra='allow')
width class-attribute instance-attribute
width: int = 500
height class-attribute instance-attribute
height: int = 500
path class-attribute instance-attribute
path: str | None = None
name class-attribute instance-attribute
name: str | PlotlyIconName | None = None
svg class-attribute instance-attribute
svg: str | None = None
transform class-attribute instance-attribute
transform: str | None = None

Plotly Icon Name

pywry.plotly_config.PlotlyIconName

Bases: str, Enum

Built-in Plotly icon names.

These values must exactly match the keys in Plotly.Icons (from ploticon.js). See: https://github.com/plotly/plotly.js/blob/master/src/fonts/ploticon.js

Attributes
AUTOSCALE class-attribute instance-attribute
AUTOSCALE = 'autoscale'
HOME class-attribute instance-attribute
HOME = 'home'
PAN class-attribute instance-attribute
PAN = 'pan'
ZOOMBOX class-attribute instance-attribute
ZOOMBOX = 'zoombox'
ZOOM_PLUS class-attribute instance-attribute
ZOOM_PLUS = 'zoom_plus'
ZOOM_MINUS class-attribute instance-attribute
ZOOM_MINUS = 'zoom_minus'
LASSO class-attribute instance-attribute
LASSO = 'lasso'
SELECTBOX class-attribute instance-attribute
SELECTBOX = 'selectbox'
DRAW_LINE class-attribute instance-attribute
DRAW_LINE = 'drawline'
DRAW_RECT class-attribute instance-attribute
DRAW_RECT = 'drawrect'
DRAW_CIRCLE class-attribute instance-attribute
DRAW_CIRCLE = 'drawcircle'
DRAW_OPEN_PATH class-attribute instance-attribute
DRAW_OPEN_PATH = 'drawopenpath'
DRAW_CLOSED_PATH class-attribute instance-attribute
DRAW_CLOSED_PATH = 'drawclosedpath'
ERASE_SHAPE class-attribute instance-attribute
ERASE_SHAPE = 'eraseshape'
PENCIL class-attribute instance-attribute
PENCIL = 'pencil'
CAMERA class-attribute instance-attribute
CAMERA = 'camera'
CAMERA_RETRO class-attribute instance-attribute
CAMERA_RETRO = 'camera-retro'
DISK class-attribute instance-attribute
DISK = 'disk'
MOVIE class-attribute instance-attribute
MOVIE = 'movie'
QUESTION class-attribute instance-attribute
QUESTION = 'question'
UNDO class-attribute instance-attribute
UNDO = 'undo'
SPIKELINE class-attribute instance-attribute
SPIKELINE = 'spikeline'
TOOLTIP_BASIC class-attribute instance-attribute
TOOLTIP_BASIC = 'tooltip_basic'
TOOLTIP_COMPARE class-attribute instance-attribute
TOOLTIP_COMPARE = 'tooltip_compare'
Z_AXIS class-attribute instance-attribute
Z_AXIS = 'z-axis'
ROTATE_3D class-attribute instance-attribute
ROTATE_3D = '3d_rotate'
PLOTLY_LOGO = 'plotlylogo'
NEW_PLOTLY_LOGO = 'newplotlylogo'

Built-in Custom Buttons

pywry.plotly_config.DownloadImageButton

DownloadImageButton(**kwargs: Any)

Bases: ModeBarButton

Button to download the chart as an image.

Attributes

model_config class-attribute instance-attribute

model_config = ConfigDict(populate_by_name=True, alias_generator=to_camel, extra='allow')

name instance-attribute

name: str

title instance-attribute

title: str

icon instance-attribute

icon: SvgIcon | PlotlyIconName | str | dict[str, Any]

click class-attribute instance-attribute

click: str | None = None

attr class-attribute instance-attribute

attr: str | None = None

val class-attribute instance-attribute

val: Any | None = None

toggle class-attribute instance-attribute

toggle: bool | None = None

event class-attribute instance-attribute

event: str | None = None

data class-attribute instance-attribute

data: dict[str, Any] | None = None

Functions

to_js_config

to_js_config() -> dict[str, Any]

Convert to JS-compatible config dict, handling PyWry event logic.

pywry.plotly_config.ResetAxesButton

ResetAxesButton(**kwargs: Any)

Bases: ModeBarButton

Button to reset axes.

Attributes

model_config class-attribute instance-attribute

model_config = ConfigDict(populate_by_name=True, alias_generator=to_camel, extra='allow')

name instance-attribute

name: str

title instance-attribute

title: str

icon instance-attribute

icon: SvgIcon | PlotlyIconName | str | dict[str, Any]

click class-attribute instance-attribute

click: str | None = None

attr class-attribute instance-attribute

attr: str | None = None

val class-attribute instance-attribute

val: Any | None = None

toggle class-attribute instance-attribute

toggle: bool | None = None

event class-attribute instance-attribute

event: str | None = None

data class-attribute instance-attribute

data: dict[str, Any] | None = None

Functions

to_js_config

to_js_config() -> dict[str, Any]

Convert to JS-compatible config dict, handling PyWry event logic.

pywry.plotly_config.ToggleGridButton

ToggleGridButton(**kwargs: Any)

Bases: ModeBarButton

Button to toggle grid lines (Example custom button).

Attributes

model_config class-attribute instance-attribute

model_config = ConfigDict(populate_by_name=True, alias_generator=to_camel, extra='allow')

name instance-attribute

name: str

title instance-attribute

title: str

icon instance-attribute

icon: SvgIcon | PlotlyIconName | str | dict[str, Any]

click class-attribute instance-attribute

click: str | None = None

attr class-attribute instance-attribute

attr: str | None = None

val class-attribute instance-attribute

val: Any | None = None

toggle class-attribute instance-attribute

toggle: bool | None = None

event class-attribute instance-attribute

event: str | None = None

data class-attribute instance-attribute

data: dict[str, Any] | None = None

Functions

to_js_config

to_js_config() -> dict[str, Any]

Convert to JS-compatible config dict, handling PyWry event logic.