Available in the Full Version

Data Chart - Charts - Stacked Series

This sample shows stacked series of the igDataChart control.

This sample is designed for a larger screen size.

On mobile, try rotating your screen, view full size, or email to another device.

Code View

Copy to Clipboard
<!DOCTYPE html>
<html>
<head>
    <title>Charts - Stacked Series</title>
    <script src="http://ajax.aspnetcdn.com/ajax/modernizr/modernizr-2.8.3.js"></script>
    <script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
    <script src="http://code.jquery.com/ui/1.11.1/jquery-ui.min.js"></script>

    <!-- Ignite UI for jQuery Required Combined CSS Files -->
    <link href="http://cdn-na.infragistics.com/igniteui/2024.2/latest/css/themes/infragistics/infragistics.theme.css" rel="stylesheet" />
    <link href="http://cdn-na.infragistics.com/igniteui/2024.2/latest/css/structure/infragistics.css" rel="stylesheet" />

    <!--CSS file specific for chart styling -->
    <link href="http://cdn-na.infragistics.com/igniteui/2024.2/latest/css/structure/modules/infragistics.ui.chart.css" rel="stylesheet" />

    <!-- Ignite UI for jQuery Required Combined JavaScript Files -->
    <script src="http://cdn-na.infragistics.com/igniteui/2024.2/latest/js/infragistics.core.js"></script>
    <script src="http://cdn-na.infragistics.com/igniteui/2024.2/latest/js/infragistics.dv.js"></script>

</head>
<body> 
    <script type="text/javascript" src="/data-files/world-energy-production.js"></script>

    <script>

        $(function () {
              
            function CreateChart(seriesType, chartTitle) {

                var xAxis = {};
                var yAxis = {};
                if (seriesType.contains("Bar"))
                {
                    // stack bar series require numeric xAxis and category yAxis
                    xAxis = { name: "xAxis", type: "numericX", title: "Quadrillion Btu" };
                    yAxis = { name: "yAxis", type: "categoryY", label: "Year", gap: 0.5, };
                }
                else
                {
                    // other stack series require category xAxis and numeric yAxis
                    xAxis = { name: "xAxis", type: "categoryX", label: "Year", gap: 0.5,  };
                    yAxis = { name: "yAxis", type: "numericY", title: "Quadrillion Btu" };
                }

                var selector = "#" + seriesType;
                $(selector).igDataChart({
                    dataSource: lastFiveYears,
                    height: "250px",
                    width: "250px",
                    title: chartTitle,
                    horizontalZoomable: true,
                    verticalZoomable: true,
                    windowResponse: "immediate",
                    axes: [ xAxis, yAxis ],
                    series: [
                        CreateStackedSeries(seriesType), 
                    ], 
                });
            };

            function CreateStackedSeries(seriesType) {
                var series = {
                    name: seriesType + "Series",
                    type: seriesType,
                    xAxis: "xAxis",
                    yAxis: "yAxis",
                    outline: "transparent",
                    series: [
                        CreateStackedFragment("Canada"),
                        CreateStackedFragment("Russia"),
                        CreateStackedFragment("China"),
                        CreateStackedFragment("UnitedStates"),
                        CreateStackedFragment("SaudiArabia"),
                    ]
                }

                if (seriesType.contains("Column")) {
                    series.radius = 0;
                }

                return series;
            }

            function CreateStackedFragment(memberPath) {

                var stackFragment = {
                    name: memberPath + "Fragment",
                    title: memberPath,
                    valueMemberPath: memberPath,
                    type: "stackedFragment",
                    showTooltip: true,
                    tooltipTemplate: memberPath,
                };
                return stackFragment;
            }

            CreateChart("stackedBar",           "Stacked Bar");
            CreateChart("stacked100Bar",        "Stacked 100 Bar");

            CreateChart("stackedArea",          "Stacked Area");
            CreateChart("stackedColumn",        "Stacked Column");
            CreateChart("stackedLine",          "Stacked Line");
            CreateChart("stackedSpline",        "Stacked Spline");
            CreateChart("stackedSplineArea",    "Stacked Spline Area");
            CreateChart("stacked100Area",       "Stacked 100 Area");
            CreateChart("stacked100Column",     "Stacked 100 Column");
            CreateChart("stacked100Line",       "Stacked 100 Line");
            CreateChart("stacked100Spline",     "Stacked 100 Spline");
            CreateChart("stacked100SplineArea", "Stacked 100 Spline Area");
        });

    </script>

    <style>
        .chart {
            display: inline-block;
            margin: 0 10px 10px 0;
        }

        .chart h4 {
            margin-bottom: 5px;
        }
    </style>
    <div>
        <div>
            <div class="chart" id="stackedBar"></div>
            <div class="chart" id="stacked100Bar"></div>
            <div class="chart" id="stackedArea"></div>

            <div class="chart" id="stackedColumn"></div>
            <div class="chart" id="stacked100Column"></div>
            <div class="chart" id="stacked100Area"></div>

            <div class="chart" id="stackedLine"></div>
            <div class="chart" id="stacked100Line"></div>
            <div class="chart" id="stackedSplineArea"></div>

            <div class="chart" id="stackedSpline"></div>
            <div class="chart" id="stacked100Spline"></div>
            <div class="chart" id="stacked100SplineArea"></div>
        </div>

        <div class="EIAdata-attribution">
            Energy data from:<br />
            <a href="http://www.eia.gov/" target="_blank">U.S. Energy Information Administration (2012)</a>
        </div>

    </div>
</body>
</html>