2013-02-18 47 views
1

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

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

我想规模在4000结束,即使最长的酒吧延伸到4054这部分很简单,只需通过设置最大。

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

想一想,我可以设置ticks小于最大值,并以tickInterval false结束。还有其他选择吗?

回答

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

添加到更改栏的颜色。

+0

想你。我希望能做的,也许是让酒吧变得像银色一样。我试图将这种行为添加到您的示例中:http://jsfiddle.net/manishap/WQkeQ/2/。此代码不起作用有两个原因:1)它将所有酒吧变成银色。 2)查看工具提示后,默认返回蓝色,不保留显式颜色设置。你看到我在做什么错了吗? – manisha 2013-02-19 20:01:19

+0

嗨塞巴斯蒂安,谢谢你的回应。我利用了你的建议。我有一个新问题。如果用户查看工具提示,我分配给该栏的颜色更改不会持续。在翻转/展开时,不同颜色的栏会恢复为默认值。我需要什么样的选项来改变这一点。我在这里更新了小提琴:http://jsfiddle.net/WQkeQ/4/ – manisha 2013-02-20 22:05:49