Source code for openpyxl.chart.area_chart

# Copyright (c) 2010-2019 openpyxl

from openpyxl.descriptors.serialisable import Serialisable
from openpyxl.descriptors import (
    Typed,
    Set,
    Bool,
    Integer,
    Sequence,
    Alias,
)

from openpyxl.descriptors.excel import ExtensionList
from openpyxl.descriptors.nested import (
    NestedMinMax,
    NestedSet,
    NestedBool,
)

from ._chart import ChartBase
from .descriptors import NestedGapAmount
from .axis import TextAxis, NumericAxis, SeriesAxis, ChartLines
from .label import DataLabelList
from .series import Series


class _AreaChartBase(ChartBase):

    grouping = NestedSet(values=(['percentStacked', 'standard', 'stacked']))
    varyColors = NestedBool(nested=True, allow_none=True)
    ser = Sequence(expected_type=Series, allow_none=True)
    dLbls = Typed(expected_type=DataLabelList, allow_none=True)
    dataLabels = Alias("dLbls")
    dropLines = Typed(expected_type=ChartLines, allow_none=True)

    _series_type = "area"

    __elements__ = ('grouping', 'varyColors', 'ser', 'dLbls', 'dropLines')

    def __init__(self,
                 grouping="standard",
                 varyColors=None,
                 ser=(),
                 dLbls=None,
                 dropLines=None,
                ):
        self.grouping = grouping
        self.varyColors = varyColors
        self.ser = ser
        self.dLbls = dLbls
        self.dropLines = dropLines
        super(_AreaChartBase, self).__init__()


[docs]class AreaChart(_AreaChartBase): tagname = "areaChart" grouping = _AreaChartBase.grouping varyColors = _AreaChartBase.varyColors ser = _AreaChartBase.ser dLbls = _AreaChartBase.dLbls dropLines = _AreaChartBase.dropLines # chart properties actually used by containing classes x_axis = Typed(expected_type=TextAxis) y_axis = Typed(expected_type=NumericAxis) extLst = Typed(expected_type=ExtensionList, allow_none=True) __elements__ = _AreaChartBase.__elements__ + ('axId',) def __init__(self, axId=None, extLst=None, **kw ): self.x_axis = TextAxis() self.y_axis = NumericAxis() super(AreaChart, self).__init__(**kw)
[docs]class AreaChart3D(AreaChart): tagname = "area3DChart" grouping = _AreaChartBase.grouping varyColors = _AreaChartBase.varyColors ser = _AreaChartBase.ser dLbls = _AreaChartBase.dLbls dropLines = _AreaChartBase.dropLines gapDepth = NestedGapAmount() x_axis = Typed(expected_type=TextAxis) y_axis = Typed(expected_type=NumericAxis) z_axis = Typed(expected_type=SeriesAxis, allow_none=True) __elements__ = AreaChart.__elements__ + ('gapDepth', ) def __init__(self, gapDepth=None, **kw): self.gapDepth = gapDepth super(AreaChart3D, self).__init__(**kw) self.x_axis = TextAxis() self.y_axis = NumericAxis() self.z_axis = SeriesAxis()