aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/pptx/chart/legend.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/pptx/chart/legend.py')
-rw-r--r--.venv/lib/python3.12/site-packages/pptx/chart/legend.py79
1 files changed, 79 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/pptx/chart/legend.py b/.venv/lib/python3.12/site-packages/pptx/chart/legend.py
new file mode 100644
index 00000000..9bc64dbf
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/pptx/chart/legend.py
@@ -0,0 +1,79 @@
+"""Legend of a chart."""
+
+from __future__ import annotations
+
+from pptx.enum.chart import XL_LEGEND_POSITION
+from pptx.text.text import Font
+from pptx.util import lazyproperty
+
+
+class Legend(object):
+ """
+ Represents the legend in a chart. A chart can have at most one legend.
+ """
+
+ def __init__(self, legend_elm):
+ super(Legend, self).__init__()
+ self._element = legend_elm
+
+ @lazyproperty
+ def font(self):
+ """
+ The |Font| object that provides access to the text properties for
+ this legend, such as bold, italic, etc.
+ """
+ defRPr = self._element.defRPr
+ font = Font(defRPr)
+ return font
+
+ @property
+ def horz_offset(self):
+ """
+ Adjustment of the x position of the legend from its default.
+ Expressed as a float between -1.0 and 1.0 representing a fraction of
+ the chart width. Negative values move the legend left, positive
+ values move it to the right. |None| if no setting is specified.
+ """
+ return self._element.horz_offset
+
+ @horz_offset.setter
+ def horz_offset(self, value):
+ self._element.horz_offset = value
+
+ @property
+ def include_in_layout(self):
+ """|True| if legend should be located inside plot area.
+
+ Read/write boolean specifying whether legend should be placed inside
+ the plot area. In many cases this will cause it to be superimposed on
+ the chart itself. Assigning |None| to this property causes any
+ `c:overlay` element to be removed, which is interpreted the same as
+ |True|. This use case should rarely be required and assigning
+ a boolean value is recommended.
+ """
+ overlay = self._element.overlay
+ if overlay is None:
+ return True
+ return overlay.val
+
+ @include_in_layout.setter
+ def include_in_layout(self, value):
+ if value is None:
+ self._element._remove_overlay()
+ return
+ self._element.get_or_add_overlay().val = bool(value)
+
+ @property
+ def position(self):
+ """
+ Read/write :ref:`XlLegendPosition` enumeration value specifying the
+ general region of the chart in which to place the legend.
+ """
+ legendPos = self._element.legendPos
+ if legendPos is None:
+ return XL_LEGEND_POSITION.RIGHT
+ return legendPos.val
+
+ @position.setter
+ def position(self, position):
+ self._element.get_or_add_legendPos().val = position