1

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

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

我希望刻度以 4,000 结束,即使最长的条延伸到 4054。这部分很简单,只需设置 Max。

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

经过深思熟虑,我可以将刻度设置为小于最大值,并以 tickInterval 为假结束。还有其他选择吗?

4

1 回答 1

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'
                 });

更改条的颜色。

于 2013-02-19T09:45:38.000 回答