Highcharts Bar延伸过MaxValue

时间:2013-02-18 22:24:50

标签: highcharts max

我想在Highcharts中制作一个简单的条形图。但是,我希望最大值小于系列中的实际最大值,并提供正在发生的视觉线索。

如果您引用了highcharts演示: http://www.highcharts.com/demo/bar-basic

我希望刻度以4,000结束,即使最长的条延伸到4054.只需设置最大值即可轻松完成。

但是,我想要一些视觉指示器让用户知道酒吧超出了最大值。这适用于系列中的最高值如此之高的情况,这使得很难看到图中的其他值相对于彼此。我们基本上不需要关注异常值,但需要知道它位于轴外。

通过思考,我可以将ticks设置为小于最大值,并以tickInterval false结束。还有其他选择吗?

1 个答案:

答案 0 :(得分:1)

那么应该显示这些信息?

我准备了一个简单的例子,它在工具提示和图表下方的报告div中标记了这些信息。

http://jsfiddle.net/sbochan/8sKcs/

$(function () {
var chart;
$(document).ready(function() {
    chart = new Highcharts.Chart({
        chart: {
            renderTo: 'container',
            type: 'bar'
        },
        title: {
            text: 'Historic World Population by Region'
        },
        subtitle: {
            text: 'Source: Wikipedia.org'
        },
        xAxis: {
            categories: ['Africa', 'America', 'Asia', 'Europe', 'Oceania'],
            title: {
                text: null
            }
        },
        yAxis: {
            min: 0,
            max:4000,
            title: {
                text: 'Population (millions)',
                align: 'high'
            },
            labels: {
                overflow: 'justify'
            }
        },
        tooltip: {
            formatter: function() {
                if(this.y > (this.series.chart.yAxis[0].max))
                    return this.series.name +': '+ this.y + ' max is smaller: '+this.series.chart.yAxis[0].max ;
                else
                    return this.series.name +': '+ this.y;
            }
        },
        plotOptions: {
            bar: {
                dataLabels: {
                    enabled: true
                }
            }
        },
        credits: {
            enabled: false
        },
        series: [{
            name: 'Year 2008',
            data: [973, 914, 4054, 732, 34]
        }]
    },function(chart){

        var max = chart.yAxis[0].max,
            content = '<h2>Points</h2><br/>';

        $.each(chart.series,function(i,serie){
            $.each(serie.data,function(j,data){
               if(data.y > max)
                   content += 'Point: '+data.y+' is bigger than max: '+max;
            });
        });

        $('#report').html(content);

    });
});

});

编辑:

您也可以添加

data.graphic.attr({
                   fill:'yellow'
                 });

改变酒吧的颜色。