我已经使用高图single line series graph。看来一切正常,但是当我调整页面大小时(只是检查响应性还是仅在移动设备上)。值消失。我可以在控制台日志中看到错误。

php - 线形系列图在调整大小时出现错误-Highcharts-LMLPHP

这就是我生成图表的方式

Highcharts.stockChart('nav-chart', {

 tooltip: {
        pointFormat:"{point.y:.3f}\u20ac"
  },
  chart: {
    type: 'line',
    zoomType: 'x',
    pinchType: 'x',
    panning: false,
    <?php if (is_front_page()){ ?>
    height: 700,
    <?php } else { ?>
    height: 500,
    events: {
      load: updateLegendLabel
    }
    <?php } ?>
  },


updateLegendLabel具有一些生成标签的计算。

 var chrt = !this.chart ? this : this.chart;
  chrt.update({
    legend: {
      useHTML: true,
      symbolPadding: 0,
      symbolWidth: 0,
      symbolHeight: 0,
      symbolRadius: 0,
      labelFormatter: function() {


        var lastVal = this.yData[this.yData.length - 1],
          chart = this.chart,
          xAxis = this.xAxis,
          points = this.points,
          avg = 0,
          counter = 0,
          min, max;
... there is some business logic down there


调整页面大小时,points var变为null。为什么会这样?我需要重新更新数据集还是什么?

最佳答案

嵌套服务器和客户端逻辑不好。更好的方法是这样分隔逻辑。波纹管只是出于想法而不是确切的代码。但是,如果您提供了将服务器逻辑与客户端逻辑分开的完整代码,则可以修复该问题。

<script>
//before graph area started
var dataA = '<?php echo $dataA;?>';
var dataB = '<?php echo $dataB;?>';
//graph logic started
// your graph code which can use above variables
// but the variable need to be available can be evaluated from your draw script.

</script>


然后在图形脚本中使用这些变量。
因为在调整浏览器大小时,图形正在重绘,并且在图形重绘时其外观数据不可用。但是,如果使用上述逻辑,则每次重绘时都可以使用数据

09-19 17:56