Chart2 Direct Title/Subtitle Position

Overview

The style_position() method is called to set the position of the chart title.

Setup

General setup used to run the examples in this page.

from __future__ import annotations
from pathlib import Path
import uno
from ooo.dyn.awt.gradient_style import GradientStyle
from ooodev.calc import CalcDoc, ZoomKind
from ooodev.loader.lo import Lo
from ooodev.utils.color import StandardColor
from ooodev.utils.data_type.color_range import ColorRange

def main() -> int:
    with Lo.Loader(connector=Lo.ConnectPipe()):
        fnm = Path.cwd() / "tmp" / "piechart.ods"
        doc = CalcDoc.open_doc(fnm=fnm, visible=True)
        Lo.delay(500)
        doc.zoom(ZoomKind.ZOOM_100_PERCENT)

        sheet = doc.sheets[0]
        sheet["A1"].goto()
        chart_table = sheet.charts[0]
        chart_doc = chart_table.chart_doc
        _ = chart_doc.style_border_line(
            color=StandardColor.PURPLE_DARK1,
            width=0.7,
        )
        _ = chart_doc.style_area_gradient(
            step_count=64,
            style=GradientStyle.SQUARE,
            angle=45,
            grad_color=ColorRange(
                StandardColor.BLUE_DARK1,
                StandardColor.PURPLE_LIGHT2,
            ),
        )

        title = chart_doc.get_title()
        if title is None:
            raise ValueError("Title not found")

        title.style_position(7.1, 66.3)

        Lo.delay(1_000)
        doc.close()
    return 0

if __name__ == "__main__":
    SystemExit(main())

Applying Position

Before formatting the chart is seen in Fig. 832.

By default the Position class uses millimeters as the unit of measure.

Apply to Title

# ... other code
title = chart_doc.get_title()
if title is None:
    raise ValueError("Title not found")

title.style_position(7.1, 66.3)

The results are seen in Fig. 642 and Fig. 611.

Chart with title position set

Fig. 642 Chart with title position set

Chart Title Position and Size Dialog

Fig. 643 Chart Title Position and Size Dialog

Apply to Subtitle

# ... other code
sub_title = chart_doc.first_diagram.get_title()
if sub_title is None:
    raise ValueError("Title not found")

sub_title.style_position(7.1, 66.3)

The results are seen in Fig. 644.

Chart with subtitle position set

Fig. 644 Chart with subtitle position set