2013-03-25 111 views
0

使用VU量规样本的一个有趣的小“怪癖”。当我尝试重新定位测量窗格时,数字显示屏会消失。如果我保持< = 100%的位置,显示屏将显示任何> 100%的数字显示消失。Highcharts VU仪表数字显示消失

我曾多次试图强制显示回到可以看到的位置,但没有运气。有任何想法吗?这里是最新的测试小提琴:

VU Meter Fiddle

调整元件是容易的,使用窗格:部与显示面板移动整个量规,使用datalabel:部分移动数字显示器。

$(function() { 
var chart = new Highcharts.Chart({ 
    chart: { 
     renderTo: 'container', 
     type: 'gauge', 
     plotBorderWidth: 1, 
     plotBackgroundColor: { 
      linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, 
      stops: [ 
       [0, '#FFF4C6'], 
       [0.3, '#FFFFFF'], 
       [1, '#FFF4C6'] 
      ] 
     }, 
     plotBackgroundImage: null, 
     height: 200 
    }, 

    title: { 
     text: 'Efficiencies' 
    }, 
    /*** 
     in order to move the gauge up or down in the pane, adjust the 'Y' element in 
     the center array. Adjusting this above 100% (to move the gauge DOWN) 
     will cause the numeric display to disappear 
    ***/ 
    pane: [{ 
     startAngle: -45, 
     endAngle: 45, 
     background: null, 
     center: ['25%', '100%'], 
     size: 200 
    }, { 
     startAngle: -45, 
     endAngle: 45, 
     background: null, 
     center: ['75%', '105%'], 
     size: 200 
    }],       

    yAxis: [{ 
     min: 0, 
     max: 110, 
     minorTickPosition: 'outside', 
     tickPosition: 'outside', 
     labels: { 
      rotation: 'auto', 
      distance: 20 
     }, 
     plotBands: [{ 
      from: 0, 
      to: 70, 
      color: '#DF5353', // red 
      innerRadius: '100%', 
      outerRadius: '105%' 
     }, { 
      from: 70, 
      to: 95, 
      color: '#DDDF0D', // yellow 
      innerRadius: '100%', 
      outerRadius: '105%' 
     }, { 
      from: 95, 
      to: 110, 
      color: '#55BF3B', // green 
      innerRadius: '100%', 
      outerRadius: '105%' 
     }], 
     pane: 0, 
     title: { 
      text: '<span style="font-size:10px">OEE %</span><br/><span style="font-size:8px">Machine 001</span>', 
      y: -30 
     } 
    }, { 
     min: 0, 
     max: 110, 
     minorTickPosition: 'outside', 
     tickPosition: 'outside', 
     labels: { 
      rotation: 'auto', 
      distance: 20 
     }, 
     plotBands: [{ 
      from: 0, 
      to: 70, 
      color: '#DF5353', // red 
      innerRadius: '100%', 
      outerRadius: '105%' 
     }, { 
      from: 70, 
      to: 95, 
      color: '#DDDF0D', // yellow 
      innerRadius: '100%', 
      outerRadius: '105%' 
     }, { 
      from: 95, 
      to: 110, 
      color: '#55BF3B', // green 
      innerRadius: '100%', 
      outerRadius: '105%' 
     }], 
     pane: 1, 
     title: { 
      text: '<span style="font-size:10px">Cycle Eff %</span><br/><span style="font-size:8px">Machine 001</span>', 
      y: -30 
     } 
    }], 

    plotOptions: { 
     gauge: { 
      /*** 
       Adjusting the position of the numeric display is also easy 
       Change the y: component more negative move the display UP, 
       decreasing the value move the display DOWN 
      ***/ 
      dataLabels: { 
       enabled: true, 
       x: 0, 
       y: -120 
      }, 
      dial: { 
       radius: '110%' 
      } 
     } 
    }, 
    series: [{ 
     data: [80], 
     yAxis: 0 
    }, { 
     data: [80], 
     yAxis: 1 
    }] 

}, 

// Let the music play 
function(chart) { 
    setInterval(function() { 
     var left = chart.series[0].points[0], 
      right = chart.series[1].points[0], 
      leftVal, 
      //inc = (Math.random() - 0.5) * 30; 
      inc1 = Math.random() * (30) + 70; 
      inc2 = Math.random() * (30) + 70; 

     leftVal = left.y + inc1; 
     rightVal = right.y + inc2; ///3; 
     if (leftVal < 0 || leftVal > 110) { 
      //leftVal = left.y - inc; 
      leftVal = 110 - inc1; 
     } 
     if (rightVal < 0 || rightVal > 110) { 
      rightVal = 110 - inc2; 
     } 

     left.update(parseInt(leftVal),false); 
     right.update(parseInt(rightVal), false);//, false); 
     chart.redraw(); 

    }, 1500); 

}); 
}); 
+0

报告的问题,请参见:https://github.com/highslide-software/highcharts.com/issues/1657 – 2013-03-28 16:20:16

回答

2

如果使用dataLabels.crop = false选项,它会显示出来。但是根据API描述,如果数据标签也位于绘图区域之外,它也会显示出来,您可能不想要。 highcharts的行为很奇怪,因为它会查看系列是否在绘图区域之外,而不是数据标签在隐藏标签时的位置,所以我同意这是一个错误。

http://api.highcharts.com/highcharts#plotOptions.series.dataLabels.crop

上跟踪