2013-02-27 81 views
1

我有一个柱形图结合整个图表中的线条绘制。 将图表容器的宽度减小到小于357像素的值时,水平线只会画​​半边而不是全角。highcharts线没有完全绘制

chart = new Highcharts.Chart({ 
      chart: { 
       renderTo: 'chartcontainer', 
       defaultSeriesType: 'column', 
       borderRadius:0, 
       marginRight: 22, 
       marginBottom: 140 
      }, 
      title: { 
       text: 'test norm', 
       align: 'left' 
      }, 
      xAxis: [{ 
       title: { 
        text: 'x', 
        style: { 

        } 
       }, 
       categories: ['2008','2009','2010','2011','2012'], 
       labels: { 
        style: { 
        } 
       } 
      }, 
      { //secondary xAxis for range and norm values 
       gridLineWidth: 0, 
       labels:{ 
        enabled:false 
       }, 
       lineWidth:0, 
       tickWidth:0, 
       opposite: true, 
       minPadding:0, 
       maxPadding:0 
      } 
      ], 
      yAxis: { 
       title: { 
        text: 'y', 
        style: { 
        } 
       }, 
       labels: { 
        style: { 
        } 
       } 
      }, 
      legend: { 
       layout: 'vertical', 
       align: 'left', 
       verticalAlign: 'bottom', 
       width:700, 
       borderRadius: 0, 
       shadow:false, 
       floating:true,   
       borderWidth: 0         
      }, 
      navigation: { 
       buttonOptions: { 
        enabled: false 
       } 
      }, 
      tooltip: { 
       borderRadius: 0, 
       borderWidth: 1, 
       backgroundColor: '#FFFFFF', 
       shadow: false, 
       style: { 
        font: 'bold 11px Arial, Verdana, sans-serif', 
        fontWeight: 'bold' 
       },       
       formatter: function() { 
         return '<b>'+ this.x +'</b><br/>'+ this.series.name +': '+ this.y +'<br/>'; 
       } 
      }, 
      plotOptions: { 
       column: { 
        dataLabels: { 
         enabled: false 
        }, 
        shadow: false 
       } 
      }, 
      series: [{ name: 'A', shadow: false, data: [8,2,8,4,6] },{ name: 'B', shadow: false, data: [1,4,2,3,4] },{ name: 'C', shadow: false, data: [4,16,8,12,16] },{ name: 'E', shadow: false, data: [8,4,6,8,2] },{ 
type:'line', 
name:'Norm', 

data:[ 
    { 
     y:10.000000,    
     x:0.000000, 
     dataLabels: { 
      enabled: false, 
      align: 'left', 
      formatter:function(){return 'Norm: ' + this.y;}, 
      style: {fontWeight:'bold'} 
     }, 

    }, 
    { 
     y:10.000000, 
     x:1.000000, 
     dataLabels: { 
      enabled: true, 
      align: 'right', 
      formatter:function(){return 'Norm: ' + this.y;}, 
      style: {fontWeight:'bold'} 
     }, 
    } 
], 
color: '#01A1EB', 
lineWidth:1, 
dashStyle:'Solid', 
shadow: { 
    opacity:0.1 
}, 
enableMouseTracking:false, 
marker:{enabled:false}, 
xAxis:1, 
showInLegend: true 

}] });

看到我的jsfiddle例如: 完全画的直线:

http://jsfiddle.net/ramon_ackermann/WwSbT/7/

线只有一半: http://jsfiddle.net/ramon_ackermann/WwSbT/8/

任何想法可能会导致这样?

干杯。

回答

1

情节主线将是我的首选方案为好。

如果你需要它是出于某种原因一个系列,但是,你可以做这样的:

1)-0.5,最大x值设定在4.5 2线的最小x值)设定x轴分钟,在0和最大值在4 3)忘记二次x轴

http://jsfiddle.net/jlbriggs/WwSbT/10/

for the x axis: 
xAxis: [{ 
    min:0, 
    max:4, 
}] 

and then in the data: 
... 
    y:10.000000,    
    x:-0.5, 
... 
    y:10.000000, 
    x:4.5, 

第二x轴似乎是问题的一部分。如果您隐藏了规范系列,然后重新显示它,它会正确填充绘图区域。

+0

我必须使用该系列,因为在某些图表中每行可能会出现多个步骤。但你的建议与最小和最大和删除额外工作正常 – kimyas78 2013-03-01 11:31:09