borb + plotly
unknown
python
2 years ago
1.5 kB
16
Indexable
import io from borb.pdf import Document from borb.pdf import Page from borb.pdf import SingleColumnLayout from borb.pdf import PageLayout from borb.pdf import PDF from borb.pdf import Image import plotly.graph_objects as go from PIL import Image as pImage from decimal import Decimal def create_figure() -> go.Figure: # Create the data for the figure x = [1, 2, 3, 4, 5] y = [1, 4, 3, 2, 5] # Create a scatter plot figure fig = go.Figure(data=go.Scatter(x=x, y=y, mode='markers')) # Update the layout of the figure fig.update_layout( title='Scatter Plot', xaxis=dict(title='X-axis'), yaxis=dict(title='Y-axis'), showlegend=False ) # return return fig def main(): # create Document doc: Document = Document() from pathlib import Path # create Page page: Page = Page() # add Page to Document doc.add_page(page) # set a PageLayout layout: PageLayout = SingleColumnLayout(page) layout.vertical_margin = page.get_page_info().get_height() * Decimal(0.02) # build a (plotly) Figure fig: go.Figure = create_figure() # add an Image layout.add( Image( pImage.open(io.BytesIO(fig.to_image(format="png"))), width=Decimal(278), height=Decimal(238), ) ) # store with open("test.pdf", "wb") as pdf_file_handle: PDF.dumps(pdf_file_handle, doc) if __name__ == "__main__": main()
Editor is loading...