Установите разную ширину для каждого столбца в старших графиках - PullRequest
2 голосов
/ 16 октября 2011

Мне нужно установить разные ширины для каждого столбца в моем графике ... Ширина зависит от значения yaxis ... Например, если значение yaxis равно 23, ширина столбца с этим значением будет 50px, и значение должно бытьв середине колонны.И если значение yaxis равно 234: ширина должна быть 70px и значение в середине столбца ... Как я могу это сделать?Мой график:

options = {
    chart: {
        renderTo: 'chart',
        type: 'column',
        width: 450
    },

    title: {
        text: 'A glance overview at your contest’s status'
    },

    xAxis: {
        categories: ['Approved Photos', 'Pending Approval Photos', 'Votes', 'Entrants'],
        labels: {
            //rotation: -45,
            style: {
                font: 'normal 9px Verdana, sans-serif, arial'
            }
        }
    },

    yAxis: {
        allowDecimals: false,
        min: 0,
        title: {
            text: 'Amount'
        }
    },

    legend: {
        enabled: false
    },

    series: []
};

series = {
    name: "Amount",
    data: [],
    dataLabels: {
        enabled: true,
        color: '#000000',
        align: 'right',
        x: -10,
        y: 20,
        formatter: function () {
            return this.y;
        },
        style: {
            font: 'normal 13px Verdana, sans-serif'
        }
    }
};

И я устанавливаю значения следующим образом:

    var colors = Highcharts.getOptions().colors;        
    var index = 0;
    options.series = [];
    series.data = [];
    for (var i in Data) {
        if (parseInt(Data[i]) != 0) {
            series.data.push({ y: parseInt(Data[i]), color: colors[index]            });
            index++;
        }
        else {
            series.data.push(null);
        }
    }
    options.series.push(series);
    chart = new Highcharts.Chart(options);

Ответы [ 2 ]

0 голосов
/ 02 мая 2013

В Highcharts одна серия может иметь только одну ширину, поэтому, если вы хотите, чтобы каждая полоса имела другую ширину, разбейте данные на серии и используйте pointWidth для установки ширины.

0 голосов
/ 02 мая 2013

Это то, что вы ищете http://jsfiddle.net/YCf9z

вы можете получить это, используя

pointPadding: 0.1

надеюсь, что это полезно для вас

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...