Static Image Export

Convert a DeephavenFigure to a static image using the to_image_uri method. In order to use this feature, you need to have the kaleido package installed. Either install will all extras or install kaleido separately.

pip install 'deephaven-plugin-plotly-express[all]'

or

pip install kaleido

Warning

The image is generated on the server, so it does not have access to client-side information such as timezones or theme. The theme is customizable with the template argument, but the default is not the same as a client theme.

to_image

The to_image method allows you to export a DeephavenFigure to bytes, which can be embedded as an image.

import deephaven.plot.express as dx
from deephaven import ui

dog_prices = dx.data.stocks()

line_plot = dx.line(dog_prices, x="Timestamp", y="Price", by="Sym")

# Export the plot to bytes
line_plot_bytes = line_plot.to_image()

# Embed the image in a Deephaven UI image element
line_plot_image = ui.image(src=line_plot_bytes)

Theme Template

Customize the theme with the template argument. Default options are "plotly", "plotly_white", "plotly_dark", "ggplot2", "seaborn", and "simple_white".

import deephaven.plot.express as dx
from deephaven import ui

dog_prices = dx.data.stocks()

line_plot = dx.line(dog_prices, x="Timestamp", y="Price", by="Sym")

# Use the template to change the theme
line_plot_bytes = line_plot.to_image(template="ggplot2")

# Embed the image in a Deephaven UI image element
line_plot_image = ui.image(src=line_plot_bytes)

Image Format

Customize the format with the format argument. Options are "png", "jpg", "jpeg", "webp", "svg", and "pdf".

import deephaven.plot.express as dx
from deephaven import ui

dog_prices = dx.data.stocks()

line_plot = dx.line(dog_prices, x="Timestamp", y="Price", by="Sym")

# Use the format argument to change the image format
line_plot_bytes = line_plot.to_image(format="jpg")

# Embed the image in a Deephaven UI image element
line_plot_image = ui.image(src=line_plot_bytes)

Image Size

Customize the size with the width and height arguments. The values are in pixels.

import deephaven.plot.express as dx
from deephaven import ui

dog_prices = dx.data.stocks()

line_plot = dx.line(dog_prices, x="Timestamp", y="Price", by="Sym")

# Use the width and height arguments to change the size
line_plot_bytes = line_plot.to_image(width=800, height=600)

# Embed the image in a Deephaven UI image element
line_plot_image = ui.image(src=line_plot_bytes)

Write to a File

Export the image to bytes using the to_image method, then write the bytes to a file.

import deephaven.plot.express as dx

dog_prices = dx.data.stocks()

line_plot = dx.line(dog_prices, x="Timestamp", y="Price", by="Sym")

# Export the plot to bytes
line_plot_bytes = line_plot.to_image()

# Write the image to a file in the current directory
with open("line_plot.png", "wb") as f:
    f.write(line_plot_bytes)