Back to all examples
Show
Align
Position
Font color
Font size
PHP
<?php
require_once '../lib/Kendo/Autoload.php';
$series = new \Kendo\Dataviz\UI\ChartSeriesItem();
$series->type('funnel')
       ->data(array(
            array('category' => 'Awareness', 'value' => 4),
            array('category' => 'Interest', 'value' => 3),
            array('category' => 'Desire', 'value' => 2),
            array('category' => 'Action', 'value' => 1),
       ));

$chart = new \Kendo\Dataviz\UI\Chart('chart');

$chart->title(array('text' => 'The AIDA model'))
      ->addSeriesItem($series)
      ->legend(array('position' => 'top'))
      ->tooltip(array('visible' => true, 'template' => "#= category # - #= kendo.format('{0:P}', percentage) #"))
      ->seriesDefaults(array(
                    "dynamicHeight" => false,
                    "labels" => array (
                        "template"=> "#= dataItem.category #",
                        "visible"=> true,
                        "font"=> "15px sans-serif",
                        "align"=> "center",
                        "position"=> "center",
                        "background"=> "transparent",
                        "color"=> "#000",
                        "padding"=> 5,
                        "border"=>array(
                            "width"=> 1,
                            "dashType"=> "dot",
                            "color"=> "#000"
                        ),
                        "format"=> "N0"
                    )
      ));

?>

    <div class="chart-wrapper">
        <?php echo $chart->render(); ?>
    </div>
    <div class="configuration-horizontal">
        <div class="config-section">
            <span class="configHead">Show</span>
            <ul class="options">
                <li>
                    <label>
                        <input id="labels" checked="checked" type="checkbox" autocomplete="off" /> Show labels
                    </label>
                </li>
                <li>
                    <label>
                        <input id="showBorder" type="checkbox" checked="checked" /> Show border
                    </label>
                </li>
            </ul>
        </div>
        <div class="config-section">
            <span class="configHead">Align</span>
            <ul class="options">
                <li>
                    <label>
                        <input name="alignType" type="radio" value="center" checked="checked" autocomplete="off" /> Center
                    </label>
                </li>
                <li>
                    <label>
                        <input name="alignType" type="radio" value="left" autocomplete="off" /> Left
                    </label>
                </li>
                <li>
                    <label>
                        <input name="alignType" type="radio" value="right" autocomplete="off" /> Right
                    </label>
                </li>
            </ul>
        </div>
        <div class="config-section">
            <span class="configHead">Position</span>
            <ul class="options">
                <li>
                    <label>
                        <input name="positionType" type="radio" value="center" checked="checked" autocomplete="off" /> Center
                    </label>
                </li>
                <li>
                    <label>
                        <input name="positionType" type="radio" value="top" autocomplete="off" /> Top
                    </label>
                </li>
                <li>
                    <label>
                        <input name="positionType" type="radio" value="bottom" autocomplete="off" /> Bottom
                    </label>
                </li>
            </ul>
        </div>
        <div class="config-section">
            <span class="configHead">Font color</span>
            <ul class="options">
                <li><label for="color"></label></li>
                <li><input id="color" /></li>
            </ul>
        </div>
        <div class="config-section">
            <span class="configHead">Font size</span>
            <ul class="options">
                <li><input id="sizeSlider" value="15" /></li>
            </ul>
        </div>
    </div>
    <script>
        function createChart() {
            $("#chartFoo").kendoChart({
                title: {
                    text: "The AIDA model"
                },
                legend: {
                    position: "top"
                },
                seriesDefaults: {
                    dynamicHeight: false,
                    labels: {
                        template: "#= dataItem.category #",
                        visible: true,
                        font: "15px sans-serif",
                        align: "center",
                        position: "center",
                        background: "transparent",
                        color: "#000",
                        padding: 5,
                        border: {
                            width: 1,
                            dashType: "dot",
                            color: "#000"
                        },
                        format: "N0"
                    }
                },
                series: [{
                    type: "funnel",
                    data: [{
                        category: "Awareness",
                        value: 4
                    }, {
                        category: "Interest",
                        value: 3
                    }, {
                        category: "Desire",
                        value: 2
                    }, {
                        category: "Action",
                        value: 1
                    }]
                }],
                tooltip: {
                    visible: true,
                    template: "#= category # - #= kendo.format('{0:P}', percentage) #"
                }
            });
        }

        $(document).ready(function () {
            $('#sizeSlider').kendoSlider({
                change: refresh,
                min: 1,
                max: 40
            });
            $('#color').kendoColorPicker({ change: refresh, value: "#000", buttons: false });
            $(document).bind("kendo:skinChange", refresh);
            $(".configuration-horizontal").on("change",":checkbox,:radio", refresh);
        });

        function refresh() {
            var chart = $("#chart").data("kendoChart"),
                slider = $('#sizeSlider').data("kendoSlider"),
                colorPicker = $('#color').data("kendoColorPicker"),
                showBorder = $('#showBorder').is(':checked'),
                funnelSeries = chart.options.series[0],
                labepOptions = funnelSeries.labels,
                labels = $("#labels").prop("checked"),
                alignInputs = $("input[name='alignType']"),
                alignLabels = alignInputs.filter(":checked").val(),
                positionInputs = $("input[name='positionType']"),
                position = positionInputs.filter(":checked").val();

            var borderOptions = showBorder ? {
                    width: 1,
                    dashType: "dot",
                    color: "#000"
                } : {
                    width:0
                };

            var seriesOptions = {
                dynamicHeight: false,
                labels: {
                    template: "#= dataItem.category #",
                    visible: labels,
                    font: slider.value() + "px sans-serif",
                    align: alignLabels,
                    position:position,
                    background: "transparent",
                    color: colorPicker.value(),
                    padding: 5,
                    border: borderOptions,
                    format: "N0"
                }
            }

            $('#showBorder').attr("disabled", !labels);
            alignInputs.attr("disabled", !labels);
            positionInputs.attr("disabled",!labels);
            slider.enable(labels);
            colorPicker.enable(labels);

            chart.setOptions({
                seriesDefaults: seriesOptions,
                transitions : false
            })
        }
    </script>
    <style>
        .chart-wrapper #chart {
            width: 400px;
            height: 410px;
            margin: 0 auto;
        }
        .configuration-horizontal .config-section {
            min-width: 120px;
        }
    </style>