开发者问题收集

CanvasJS 图表 axisX 未定义

2018-09-15
496

我有一个canvasjs图表,我想动态设置它的条纹。

129139707

函数设置了脱衣林的位置:

600633718

渲染后,我调用该函数,但该集合并不成功。
错误:

770016092

当我在渲染图表上看到标题和条件线时,当我在渲染图表上看到它时,如何 undefined AXISX?为什么我无法访问它并修改?有人可以帮我解决这个问题吗?

2个回答

根据 文档 ,“ 应先渲染图表,然后才能使用 set 方法 ”。在您的情况下,在调用 setVerticalLine 之前渲染图表应该可以正常工作。

var chart = new CanvasJS.Chart("chart", {	
  backgroundColor: "rgba(0,0,0,0)",
  legend: {
    fontColor: "#FFF"
  },
  axisX: [{
    title: "Test axisX title",
    stripLines: [
      {
        value: 250,
        color: "#FF0000"
      }
    ],
  }],
  data: [] //Later add datapoints
});

chart.options.data.push({type: "line", dataPoints: [{x: 200, y: 100}, {x: 300, y: 50}]}); //Dummy datapoints
chart.render();// Render Chart before using set method

var setVerticalLine = function (xPos) {
  if (typeof chart !== 'undefined') {
    chart.axisX[0].stripLines[0].set("value", xPos);
  }
};

setVerticalLine(220); //Update Stripline value to 220
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<div id="chart" style="height: 260px; width: 100%;"></div>
Vishwas R
2018-09-17

您在转储的对象上看不到 chart.axisX 。您看到的实际上是 chart.themeOptions.axisX 。此外, chart.themeOptions.axisX.set 不是一个函数(尽管 chart.themeOptions.axisX.__defineSetter__ 是一个函数)。

Maxwell Zhao
2018-09-15