javascript - 动态替换绘图带

标签 javascript highcharts

我正在尝试动态替换 Highcharts 仪表中的系列数据和绘图带。到目前为止,我已经成功地动态更改了系列数据,但是我仍然在努力更换乐队。这是我尝试过的:

let highchartsChartOptions = {
  "chart": {
    "type": "gauge",
    "renderTo": "chart"
  },
  "series": [{
    "data": [247600]
  }],
  "yAxis": {
    "plotBands": [{
      "from": 156700,
      "to": 277150,
      "color": "#ff0000",
    }, {
      "from": 277150,
      "to": 386100,
      "color": "#00ff00"
    }],
    "min": 100000,
    "max": 400000
  },
  "pane": {
    "background": null,
    "startAngle": -90,
    "endAngle": 90
  }
};



let seriesData = [
  [226800],
  [247600]
];


let seriesBands = [
  [{
    "from": 156700,
    "to": 277150,
    "color": "#ff0000",
  }, {
    "from": 277150,
    "to": 386100,
    "color": "#00ff00"
  }],
  [{
    from: 100000,
    to: 250000,
    "color": "#ff0000"
  }, {
    from: 250000,
    to: 400000,
    "thickness": 15,
  }]
];

const replacePlotBand = (axis, id, replacement) => {
  axis.removePlotBand(id);
  axis.addPlotBand(replacement);
};

let chart = new Highcharts.Chart(highchartsChartOptions);

let flip = true;
$("#change").on("click", () => {
  chart.series[0].setData(seriesData[flip ? 0 : 1]);
  chart.xAxis[0].update({
    plotBands: seriesBands[flip ? 0 : 1]
  });
  chart.redraw(true);
  flip = !flip;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://code.highcharts.com/highcharts.src.js"></script>
<script src="https://code.highcharts.com/highcharts-more.src.js"></script>

<div id='chart' style="width: 800px; height: 500px;"></div>
<button id="change">Change data</button>

我的目的是用不同的数据集替换两个系列数据和绘图带,但现在似乎只有系列数据被更新。

我不确定我在这里做错了什么。

我还尝试向乐队添加 ID 并执行以下操作:

chart.xAxis[0].removePlotBand('band1');
chart.xAxis[0].removePlotBand('band2');
chart.xAxis[0].addPlotBand(seriesBands[flip ? 0 : 1][0]);
chart.xAxis[0].addPlotBand(seriesBands[flip ? 0 : 1][1]);

但这也不起作用(参见 fiddle https://jsfiddle.net/yc2gnp7x/2/ )。

最佳答案

您的 highChartOptions 使用 yAxis,但您要删除并添加到 xAxis

关于javascript - 动态替换绘图带,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48750024/

相关文章:

javascript - 日期选择器在 Jquery UI/Jquery Easy UI 中选择特定日期范围

javascript - Highcharts 中的鼠标悬停

javascript - 在 Highcharts 上添加额外的系列

javascript - 在 Highcharts 时间序列的标题中显示百分比变化

java - 第一次加载 Android 时 HIGHChart 不显示图表

javascript - 增强 Jquery 拖放演示

javascript - 如何让 Redux Thunk 和 Apollo GraphQL 协同工作

javascript - 单击新标记时,Infobubble 选项卡不会重置

javascript - 如何标记一个月中的几天?

javascript - 如何实现更通用的 reduce 功能以允许提前退出?